-2
今日は非常に奇妙なことが見つかりました。私は静的な内部クラスを持つ次のクラスを持っています。Javaの静的内部クラスのスコープ
public class PDto {
private Agreement agreement = new Agreement();
public static class Agreement{
public String agreementName;
public String agreementDescription;
public String currency;
}
public Agreement getAgreement() {
return agreement;
}
public void setAgreement(Agreement agreement) {
this.agreement = agreement;
}
}
次のような方法がある別のクラスにClassA: - クラスA
classBService.createBillingAgreement(payment);
System.out.println("Changed billing agreement name : " + payment.getAgreement().agreementName);
そして、私はクラスのClassBから契約名を印刷するメソッドを呼び出します
private Agreement createBillingAgreement(PDto payment) {
PDto.Agreement billingAgreement = payment.getAgreement();
Agreement agreement = new Agreement();
agreement.setName(billingAgreement.agreementName);
agreement.setDescription(billingAgreement.agreementDescription);
billingAgreement.agreementName = "Changed agreeement Name" ;
}
クラスBのコードを、私はcreateBillingAgreement
クラスAの方法で設定された値を取得します。どのようにそれが可能です。
は、関連するすべてのコードを投稿してください静的なクラスです。投稿したコードはコンパイルに合格しません。 – Eran
あなたの質問は完全にわかりませんが、 'payment.getAgreement()'は 'PDto'の' agreement'インスタンスを返します( 'billingAgreement.agreementName ="変更された契約名 "はそのインスタンスの名前を設定します) 'createBillingAgreement(...)'のreturn文がなくなっているので(完全にはっきりしていない)、それ以外の部分も同様です。 – Thomas
潜在的な誤解を防止するための単なるメモ:静的内部クラスは外部クラスと特別な関係を持ちません。外部クラスは名前空間の形式としてのみ動作しますが、それだけです。 – Thomas