まず。変数がprivate/protected
であり、公平getters
とsetters
があることを意味します。そのよう
:
public class ModelClass{
private String name;
private String email;
private List<Items> items;
public ModelClass(){
items = new List<Items>();
}
public String getName(){
return name != null?name:"";
}
public void setName(String name){
this.name = name;
}
public String getEmail(){
return email=null?email:"";
}
public void setEmail(String email){
this.email= email;
}
public Items getItem(int index){
return items!=null?items.get(index):null;
}
public boolean addItem(Items item){
return items!=null?items.add(item):false;
}
}
あなたはlist
が今constructor
に初期化されます見ることができるように。したがって、外部のクラスはItems
を追加または取得することしかできません。何らかの理由でリストがnullの場合、getter
とadder
はNPE
を投げる代わりにそれぞれnullとfalseを返します。基本的にserialization
またはdeserialization
を使用している場合は、constructor
内のObjects
(Strings
は除く)をすべて初期化する必要があります。本質的にfield
がヌルになる可能性がある場合は、チェックする必要があります。
また、Java Naming Conventions
によれば、Items class:
Item
,Classes
という名前は、アイテムのコレクションを保持している場合にのみ複数の名前にすることができます。たとえば:valueOf
:
public class Item{
private String field;
public Item(){
field = "hello";
}
}
public class Items{
private List<Item> items;
public Items(){
items = new List<Item>();
}
}
最後に、私はまたString
方法を見てみた推薦します。表示されているように、このメソッドは、渡された変数がnull
であるかどうかをチェックし、そうでない場合には文字列value
を返します。似たようなものを使うことができます。
nullを返し、例外をスローしません。 –
NullPointerExceptionsは処理しません。あなたはそれらを捕まえません。あなたはそれらを避ける。参照がnullの場合、その参照でメソッドを呼び出す前にnullをチェックします。 –
基本的にobject.getName()はnullを返します。right ...私がしたいのはnullの代わりに空の文字列またはnullの配列リストを空のarraylistに変換したいのです。 – Techierj