1

どうすればそのようなことができますか?

String N = jTextField0.getText();
MyClass (N) = new Myclass();

それも可能ですか?または、私の質問で説明されているように、呼び出すたびに異なる名前で指定されたクラスの新しいオブジェクトを作成するメソッドを作成するにはどうすればよいですか。運が悪かったので、本当にどこでも検索しました。前もって感謝します

PSわかりにくいので失礼しますが、そのまま言いますが、アカウントを作成したい人の名前を入力するためのテキストフィールドを作成し、「Customer」というクラスを作成しました。「追加」という名前のボタン。これで、[追加]をクリックするたびに、コンパイラがテキストフィールドにあるものを取得し、テキストフィールドから取得したもので名前が付けられたクラス「Customer」のオブジェクトを作成する必要があります。

コメントで読むのが難しかったので、もう一度質問を更新しましたので、ごめんなさい。私はとてもひどく立ち往生しています。私の問題は、あなたがしたことを「理解」せず、それをコピーしようとしただけだと思います。これは私が書いたものです:

private void AddB0MouseClicked(java.awt.event.MouseEvent evt) {
    String name = NameT0.getText();
    Customer instance = new Customer(Name);
    Customer.customers.add(instance);

これは私の顧客クラスです:

public class Customer{
String name;
public Customer(String name){
this.name = name;
}
public String getName(){
    return name;
    }
static ArrayList<Customer> customers = new ArrayList<Customer>();
4

2 に答える 2

2

変数名はコンパイル時に決定する必要があり、生成されたコードの一部ではありません。したがって、それを行う方法はありません。

オブジェクトに名前を付けたい場合は、次を使用できます。

Map<String, MyClass> map = new HashMap<>();

次のようにオブジェクトをマップに追加します(例):

map.put(userInput, new MyClass());

次のようなオブジェクトを取得します。

MyClass mc = map.get(userInput);
于 2012-11-24T22:29:11.277 に答える
1

私はあなたが何を意味するのか完全にはわかりません...

指定したクラスの新しいオブジェクトを呼び出すたびに異なる名前で作成するメソッドを作成するにはどうすればよいですか?

...しかし、私があなたを正しく解釈しているのであればMyClass、コンストラクターパラメーターを受け入れるようにあなたがやろうとしていることを信じています。できるよ:

public class MyClass {
    private String name;

    public MyClass(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

次に、の新しいインスタンスを作成するには、次のMyClassようにします。

String name = jTextField0.getText();
MyClass instance = new MyClass(name);
instance.getName(); // returns the name it was given

編集

私が最初にこの質問に答えてからコメントに説明を追加したので、私はあなたが探している機能のより多くを描写するために答えを更新すると思いました。

インスタンスを追跡するために、MyClassインスタンスをに追加できますArrayListArrayListオブジェクトは次のようにインスタンス化できます。

ArrayList<MyClass> customers = new ArrayList<MyClass>();

次に、追加するインスタンスごとMyClassに、次の手順を実行します。

customers.add(instance);

ArrayList追加するインスタンスごとに、を再インスタンス化しないでください。インスタンス化するのはArrayList1回だけです。

于 2012-11-24T22:28:21.683 に答える