我从头开始实现LinkedList类,它们有以下方法:
Exception in thread "main" java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:194)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:112)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:105)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:235)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:208)
at org.apache.thrift.transport.TIOStreamTransport.<clinit>(TIOStreamTransport.java:38)
at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:92)
at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at com.soniya.demo.KavyaJdb.main(KavyaJdb.java:24)
我有一个getHead(), getCount(), addFront(), deleteFront()
,节点包含方法constructor(String studentAdmNo, String studentName, String gender, String diploma, int year, String status), get set method, toString()
我将getData(), setData(), getLink(), setLink(), toString()
对象添加到LinkedList(,因此此LinkedList数据字段包含多个数据;这是String studentAdmNo,String studentName,String gender,String diploma,int year,字符串状态)。
但是,我只想从数据字段中检索一个数据(即Student
)。
year
我该怎么做?
答案 0 :(得分:1)
你应该看一下这个例子(继续点击下面标记的几乎看不见的小按钮):Why Generics?
我认为您应该将列表设为通用。我想它现在包含Objects
。在您的情况下,您应该声明类似class Node<E>
和class LinkedList<E>
的类,并创建链接列表:LinkedList<Student>
。
我也反对披露Node
类。请参阅此快速概述:Encapsulation/Information Hiding。
您的getHead()
方法应直接返回Student
。然后你可以简单地做:
list.getHead().getYear();
答案 1 :(得分:1)
如果您的Node.getData()
方法返回Object
并且您已使用它来存储Student
个对象,那么您可以将返回的对象强制转换为Student
并调用相应的getter
int year = ((Student)j.getData()).getYear();
答案 2 :(得分:0)
你有吸气鬼&amp; setters,所以只需获取要从中检索年份的Node,并使用getter进行年度调用 可能该方法应该是node.getYear(); 其中node是Node的实例