是否可以將函數存儲在java中的數組中? 舉個例子..方法函數的陣列
public void getMyname(){
// do something here;
}
public void getLastname(){
//do something here;
}
Array arr = {getLastName,getMyname};
那樣?如果是這樣的話?
是否可以將函數存儲在java中的數組中? 舉個例子..方法函數的陣列
public void getMyname(){
// do something here;
}
public void getLastname(){
//do something here;
}
Array arr = {getLastName,getMyname};
那樣?如果是這樣的話?
您不能在Java中存儲數組中的方法,因爲方法不是Java中的第一類對象。這是有些人更喜歡使用Python,Scheme等其他語言的原因。
解決方法是創建一個包含一個方法的接口,然後創建四個實現該接口的類 - MoveRight,MoveLeft等。類。然後,您可以將這些類的實例存儲在您的數組中,並以同樣的方式調用它們。
public enum Level1 implements Explorable{
ROOM1 {
public void explore() {
// fight monster
}
}, ROOM2 {
public void explore() {
// solve riddle
}
}, ROOM3 {
public void explore() {
// rescue maiden
}
};
}
public interface Explorable{
public abstract void explore();
}
public static void move(Explorable[] adjacentNodes, int index)
{
adjacentNodes[index].explore();
}
也許這是太多的要求,但你能給我一個例子嗎? – androidNoob 2012-08-11 06:36:31
謝謝..我試試這個.. – androidNoob 2012-08-11 06:56:07
ahm w8 im還在搞清楚把這個放在我的活動的哪裏..^_^.. – androidNoob 2012-08-11 07:02:19
那麼你可以對我做..
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[] arrwow = {wow(),wow2()};
Toast.makeText(this, arrwow[1], Toast.LENGTH_SHORT).show();
}
public String wow(){
String wow = "wow";
return wow;
}
public String wow2(){
String wow2 = "wow2";
return wow2;
}
作品..^_ ^古德勒克
謝謝..這給了我想法.. – androidNoob 2012-08-11 06:42:57
不,你不能在Java軟件商店功能。如何面向對象?創建一個Person
類封裝了名的信息:
public class Person {
private String firstName;
private String lastName;
public String getFullName() {
return firstName + " " + lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
實例化它:
Person person = new Person();
person.setFirstName("John");
person.setLastName("Doe");
現在你有一個對象的工作,我會建議你通過周圍的Person
情況下,如儘可能長,因爲這意味着類型信息將被保留。與將人員名稱解除引用到String數組相比,您處理的數據類型(一組名稱,顏色,國家代碼等?)不太明顯。
這就是說,如果你硬要去引用名稱的數據,就不難創建String
陣列或List<String>
如果你選擇這樣做:
String[] nameArray = {person.getFirstName(), person.getLastName()};
// or
List<String> nameList = new ArrayList<String>();
nameList.add(person.getFirstName());
nameList.add(person.getLastName());
這是不可能的(Java的<= 7) - 不直接。但是,如果你解釋你的問題(背景),有人可以幫助你接近這個問題。 ...在某些情況下,你可以使用'Method'類(反射API)或類似命令模式等......取決於上下文 – 2012-08-11 06:47:15