2010-09-11 2 views
0

У меня есть класс Java следующим образом:зависимые атрибуты внутри класса Java

public class Query implements Serializable { 
    static Object[] o= new Object[8]; 

    private long oid= (Long) o[0]; 
    private double[] region= { (Double) o[1],(Double) o[2],(Double) o[3] }; 
    private boolean filter= (Boolean) o[4]; 
    private float[] vel= {(Float) o[5], (Float) o[6]}; 
    private float[] pos= {(Float) o[7], (Float) o[8]}; 

    public Query(Object[] b){ 
     o=b; 
    } 

класса запросов будет массив объектов, и я хочу, чтобы установить зависимость между Object [] о и подъязычная, область, .. .

Если я изменю значение региона, соответствующее значение в объекте [] будет изменено автоматически.

Не могли бы вы предложить мне способ сделать это эффективно. Благодаря!

ответ

3

Вам необходимо обернуть все примитивные/неизменные типы в изменяемом типе, чтобы вы могли просто ссылаться на него. Использование Джавабея - общий подход для этого.

public class Data { 
    private long id; 
    private double[] region; 
    private boolean filter; 
    private float[] vel; 
    private float[] pos; 

    // Add or generate c'tors/getters/setters/equals/hashcode/tostring here. 
} 

Так что вы можете просто сделать

public class Query { 
    private Data data; 

    public Query(Data data) { 
     this.data = data; 
    } 
} 
0

Я бы определенно использовал builder design pattern здесь. В первую очередь это обеспечит безопасность типа. И вы можете использовать примитивные типы ... В вашей реализации для получения исключения во время выполнения требуется только одна ошибка на стороне клиента класса. Отвечает ли это на ваш вопрос?

Смежные вопросы