Как проверить, какой тип данных используется? - PullRequest
1 голос
/ 28 апреля 2020

У меня есть назначение, в котором один из методов класса создает узел дерева обобщенного типа c типа T.

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Чтобы проверить, является ли ссылка на объект установкой определенного класса c, существует оператор инфикса instanceof. Вы можете использовать это в операторе if-else для обработки трех разных случаев.

Object data = treeNode.getData();
if (data instanceof LinkedList) {
    LinkedList list = (LinkedList)data;
    // do stuff ...
} else if (data instanceof CircularArray) {
    CircularArray array = (CircularArray)data;
} else {
    // error state - throw excpetion or handel this case someother way
}
1 голос
/ 28 апреля 2020

Для любого объекта TreeNode treeNode,

treeNode.getData() instanceof LinkedList

вернет true, если dataItem является экземпляром LinkedList. То же самое относится к CircularArray.

...