在Java中为我自己的LinkedList类编写自己的peek()方法

时间:2016-11-12 22:58:43

标签: java linked-list

所以我被要求为Java中的链表编写#include <iostream> #include <string> template <typename T> void is_string(const T& arg) { if (std::is_same<T, const std::string&>::value) std::cout << arg.length() << std::endl; else std::cout << "The argument is not a string" << std::endl; } int main() { is_string(0); return 0; } 方法。唯一的事情就是我想要的对象&#34;偷看&#34;是一个类型为base的私有变量,它存在于LinkedList类的私有类中。我想使用我的types.cpp: In instantiation of ‘void is_string(const T&) [with T = int]’: types.cpp:13:13: required from here types.cpp:7:13: error: request for member ‘length’ in ‘arg’, which is of non-class type ‘const int’ std::cout << arg.length() << std::endl; 方法返回对象并将其打印出来。我知道这与访问私有变量有关,但我无法使其与我所拥有的相结合。以下是我的代码片段:

peek()

提前感谢您的帮助!我真的很感激。

1 个答案:

答案 0 :(得分:2)

您应该只返回top变量。我没有看到它被初始化,但我认为它是一个类变量,因为你没有在你的push方法中初始化它。然后你可以这样做:

public Base peek()
{
     if(isEmpty())
     {
         throw new IllegalStateException("List is empty");
     }
    return top.object; //this throws an error
 }