2012-02-23 66 views
1

危険な - これは、それが参照しているラインであるインスタンスメソッドから静的フィールドにこのソナールールを解決するにはどうすればよいですか?

を書く:

record.setEarliestTradeDate(earliestTradeDate = value.earliestTradeDate); 

いくつかのより多くのコード:

Record record = getRecord(value.id); 
private static Date earliestTradeDate = null; 
public void setEarliestTradeDate(Date newValue) { earliestTradeDate = newValue; } 

それは間違いの任意の並べ替えを引き起こしていませんがエラーは発生していますが、赤でマークされたコード行のプロジェクトをクリアしたいと思います。

答えて

1

これは、インスタンスメソッドで

static Date earliestTradeDate 

スタティックを変更することが可能であることヒント(すなわち静的でない)

public void setEarliestTradeDate 

これは(または問題となる可能性が)すべてのインスタンスためその変数の状態を変更することができます。
これを修正するには、メソッドを静的にして静的変数を静的コンテキストで変更するようにします。最も初期の日付がコードのどこかの固定点であるため、これは正しいアプローチです。

public static void setEarliestTradeDate 

またはこの日付インスタンス変数ます

private Date earliestTradeDate 

また、これはsingleton patternのためのケースである可能性があります。

関連する問題