2015-01-30 2 views
1

Так что я пытаюсь получить доступ к атрибуту объекта класса внутри массива.Объект доступа в массиве

document doc1 = new document(1,"Introduction to Java", "Ahmed Raya", "Summary of doc1","History of Java.docx"); 
document doc2 = new document(2,"Object Oriented Programming", "Ahmed Raya", "Summary of doc2","Document2.pdf"); 
Object[] docary = {doc1, doc2}; 

У меня есть open(directory) функцию, которая принимает каталог объекта (например doc1 «s каталог„История Java.docx“. То, что я пытаюсь сделать, это получить доступ к атрибут директории объекта . в пределах docary массива
Это в основном то, что я хочу сделать:.? open(docary[k].directory); где к является целым переменным, введенным пользователем Как я могу это сделать
Благодаря

ответ

2

Изменения reference типа вашего объявляющему массива document. Также рассмотрите возможность переименования document class to Document, чтобы лучше следовать соглашениям об именах Java. Дополнительную информацию о форматировании см. В разделе Google Java Style Guide.

document[] docary = {doc1, doc2}; 
docary[0].directory(); //etc 
+0

Обратите внимание, что он может бросить 'docary [K]' в 'document' типа, как это:' открытой ((документ) docary [к] .directory) ', если он нужен массив, чтобы быть' Object [] ' – DeadlyJesus

+1

Большое спасибо! работал как шарм;) –

0

Вариант 1) Вы должны изменить тип массива из объекта в документ.

document[] docary = {doc1, doc2}; 

Вариант 2) Литой объект документа.

open(((document)docary[k]).directory) 
+0

Другой вопрос, могу ли я добавить и удалить из массива такого характера? Похоже, я не могу добавлять или удалять элементы, если я не использую ArrayList. Если да, то как я могу сделать то же самое, что и выше, с помощью ArrayList? –

+0

Размер массива фиксирован. Таким образом, вы не можете изменять свой размер и не удалять или добавлять элементы. Вместо этого используйте ArrayList, вы можете сделать следующее: ArrayList arrLst = new ArrayList (); arrLst.add (doc1); arrLst.add (doc2); –

+0

и получить элемент: open (файл arrLst.get (k).); –