У меня есть универсальный классJava Generic объект класса массив конкретизация
public class GenericBookDet<K,V>
{
private K bkId;
private V bkDescription;
public GenericBookDet()
{
this.bkId = null;
this.bkDescription = null;
}
public GenericBookDet(K bkId, V bkDescription)
{
this.bkId = bkId;
this.bkDescription = bkDescription;
}
...
//getter methods
//setter methods
}
Я создал массив этого класса в другом классе и хочу добавить новые книги.
public class GenericBookStore<K,V>
{
static int noOfbooks = 0;
GenericBookDet<K,V>bk1[];
public int addBook(K key, V bkDescription)
{
this.bk1[noOfbooks] = new GenericBookDet<K, V>(key,bkDescription);
this.bk1[noOfbooks].setbkDescription(bkDescription);
++noOfbooks;
return noOfbooks;
}
}
Я вызываю метод addBook следующим образом:
GenericBookStore<String, String> bkStore = new GenericBookStore<String,String>();
bkStore.addBook("1010", "ABCD");
Но это бросает NullPointerException в первой строке метода addBook.
Я хочу создать общий массив книг в GenericBookStore, в который я могу передать String и/или объект в поле bkDescription;
Обратите внимание, что вы получите предупреждения типа. Я думаю, что нет хорошего способа создать общий массив. Подумайте о том, чтобы использовать Список (особенно, поскольку вы, похоже, хотите его вырастить). – Thilo