2016-04-22 5 views
-1

メソッド配列を作成して、この配列を以下の例のメソッドの代わりに呼び出す方法があるのだろうか?このクラスのユーザーオブジェクトを格納する配列を作成するgetNameメソッドがあります。メソッドを配列に配置して使用するのは誰ですか?

public class JavaApplication48 { 

    public static void main(String[] args) { 

     User[] u = new User[] {new User ("1", "John"), new User ("2", "Tereza"), new User ("3", "Tobias")}; 

     //there put the methods .getId() and .getName in a array, i dont know who 

     //... 

     //and concatenating the users array with methods array like this 
     System.out.println(u[0]ac[1]); 
     //to print on the console "John" 
     } 
} 

class User { 
    private String id; 
    private String name; 

    public User(String id, String name) { 
     this.id = id; 
     this.name = name; 
    } 

    public String getId() { 
     return id; 
    } 

    public String getName() { 
     return name; 
    } 
} 
+1

である私はあなたの質問を理解していない、そのインタフェースで宣言「適用」を持っています。より明確にしてください。 – Gendarme

+1

あなたは正確に何を求めているのかを明確にすることができますか? – Maljam

+2

'System.out.println(u [0] .getName()); ' –

答えて

1

あなたは、ラムダ式を使用して、これをやってのけることができます:例を次のように例であり、配列することによって、このメソッドを呼び出す

public static void main(String[] args) { 
    User[] u = new User[] {new User ("1", "John"), new User ("2", "Tereza"), new User ("3", "Tobias")}; 
    Function<User, String> f1 = user -> user.getName(); 
    Function<User, String> f2 = user -> user.getId(); 
    Function<User, String>[] f = new Function[] { f1, f2 }; 

    System.out.println(f[0].apply(u[0])); 
} 

(私はあなたが達成したいものを理解していませんこれは技術的には道のりです)

私たちは宣言の

機能はメソッドので、あなたがのSystem.outラインに見るように、最終的な呼び出しが

functionReference.apply(inputObject)