Saya yakin ini adalah pertanyaan dasar dan saya melewatkan sesuatu. Namun saya jengkel mencari jawaban atas masalah ini dan karenanya saya meminta bimbingan Anda.
Tujuannya adalah untuk membuat metode statis generateStringArray () yang dapat mengembalikan array. Namun setiap kali saya menjalankan kode dalam bentuk di bawah ini, kode tersebut melempar kesalahan:
Metode statis tidak dapat direferensikan dari konteks non statis:
List<String>
Mengapa hal ini menimbulkan kesalahan? Bagian mana dari kode yang dijalankan sebagai instance kelas dan bukan statis? Apakah ada hubungannya dengan cara saya mendefinisikan fungsi atau string?
Saya telah memeriksa solusi lain yang tersedia untuk masalah serupa tetapi pertanyaan saya berkaitan dengan apa yang tidak statis dalam kode?
Kode
public class test_clonestring {
public static String[] generateStringArray (Integer lenstr){
String[] sstring = new String[lenstr];
for (Integer i = 0; i<lenstr; i++) {
sstring[i] = 'Test ' + i;
}
system.debug('STD_DBG:0:'+sstring);
return (sstring);
}
}
Kode yang telah anda posting memang terkompilasi. Untuk memanggilnya, Anda harus menggunakan nama kelas seperti ini (karena metodenya statis
):
String[] stringArray = test_clonestring.generateStringArray(5);
Ini tidak akan terkompilasi:
String[] stringArray = new test_clonestring().generateStringArray(5);