当前位置: 首页 > 知识库问答 >
问题:

尝试调用Java方法中的类的部分时出错

牟子真
2023-03-14

我差一点就要完成这项任务了,但我遇到了一个障碍。由于某些原因,我无法在我的方法中获得类的调用方面。有人有办法做到这一点吗?我已经在我所指的三个部分旁边发表了评论。我不知道是什么导致了这些错误,我非常感谢您的帮助。

public class Main
{
  public static int w = -1;
  public static int x = 0;
  public static int y = 0;
  public static int z = 0;
  public static String[] names;
  public static int[] years;
  public static String[] studios;
    public static class Movie{
    // instance variables
    private int year;
    private String title;
    private String studio;
    private int placement;
    // Constructor for objects of class Movie
    Movie(String title, int year, String studio)
    {
        // initialize instance variables
        this.title = title;
        this.year = year;
        this.studio = studio;
    }

    public String getTitle()
    {
        return title;
    }
    
    public void setTitle(String title)
    {
        this.title = title;
    }
    public void setPlacement() {
      w+=1;
      this.placement = w;
    }
      public int getPlacement() {
        return placement;
      }
    public String getStudio()
    {
        return studio;
    }
    
    public void setStudio(String studio)
    {
        this.studio = studio;
    }
    
    public int getYear()
    {
        return year;
    }
   
    public void setYear(int year)
    {
        this.year = year;
    }
   
    public String toString()
    {
        String str = String.format("%-30s %4d   %-20s", title, year, studio);
        return str;
    }
    }
    
    public static void arrNames(String name) {
      x+=1;
      names = new String[x];
      names[(x-1)] = name.getTitle(); //error here, why can't I just use getTitle()?
    }
    public static void arrYear(String name) {
      y+=1;
      years = new int[y];
      years[(y-1)] = name.getYear(); //same error
    }
    public static void arrStudio(String name) {
      z+=1;
      studios = new String[z];
      studios[z-1] = name.getStudio(); //same error
    }
  public static void setGroup(String name) {
      arrNames(name);
      arrYear(name);
      arrStudio(name);
    }
    public static void getGroups(String name) {
      int a = x;
      int b = y;
      int c = z;
      int d = 0;
      int e = 0;
      int f = 0;
      System.out.println("Names Category:  ");
      while (a > 0) {
        System.out.print(names[d] + "  ");
        d+=1;
        a-=1;
        }
      System.out.println("Years Category:  ");
      while (b > 0) {
        System.out.print(years[e] + "  ");
        e+=1;
        b-=1;
      }
      System.out.println("Studios Category:  ");
      while (c > 0) {
        System.out.print(studios[f] + "  ");
        f+=1;
        c-=1;
      }
    
  public static void main(String[] args) {
    Movie nemo = new Movie("Finding Nemo",2003,"Pixar");
    setGroup(nemo.getTitle());
    }
}

共有1个答案

濮阳原
2023-03-14

我将举这个例子:

 public static void arrYear(String name) {
  y+=1;
  years = new int[y];
  years[(y-1)] = name.getYear(); //same error
}

您试图对变量名使用getYear方法,而该名称是一个字符串,而不是一个电影对象。您可以将参数从字符串替换为电影,如下所示:

 public static void arrYear(Movie name) {
  y+=1;
  years = new int[y];
  years[(y-1)] = name.getYear(); //same error
}

它应该适用于你的所有功能

 类似资料:
  • 我创建了一个名为的类,它以分数形式表示有理数(带有分子和分母)。我还创建了一个静态方法,它接受两个并在其他私有静态方法的帮助下将它们相加(、)。我正在使用类(这有主要方法)测试我的类。分数添加是不正确的。 我想调试我的 add 方法(使用 Netbeans 调试器),但是当我点击调试时,它只显示 main 方法中的变量,而不显示 方法中的变量。我无法“看到”我的方法本身的计算。有没有办法调试不在主

  • 问题内容: 我正在尝试获取一些信息,但我的应用程序崩溃并显示以下消息: 这是代码: 这是一个纯课。的哪个调用不包含this 。我做错了吗?应始终位于内吗? 根据要求整体: 问题答案: 改成 您为布局充气。视图属于膨胀的布局。因此,使用view对象在中初始化视图 片段由活动主持 您可以在视图中使用和初始化 还在中初始化TextView 。由于Asynctask是一个内部类,因此您可以在那里更新ui

  • 问题内容: 最近,我遇到了一个神秘的问题,在Android项目,我描述了这里。我以某种方式解决了问题,但仍然不知道其背后的确切原因。 假设我想在内部类中调用函数foo()。问题是,直接调用它有什么区别 或使用外部类实例对其进行调用 此外,如果有人能检查我与此相关的最后一个问题,并向我提供有关错误发生原因的线索,我将不胜感激。非常感谢。 PS:我在某处读到,非静态内部类将始终持有外部类的实例。因此,

  • 问题内容: 在Eclipse中调试时如何调用类实例方法? 例如,假设我有以下代码: 我在canvas.drawColor行上有一个断点。当我调试时,代码停止在那一行,并且我可以查看canvas内的变量,但是我也希望能够像在Visual Studio中那样调用canvas内的方法以查看它们返回的结果? 问题答案: 打开“ 显示” 视图,在其中键入要执行的代码,选择它,单击鼠标右键,然后根据您要 执行

  • 我试图理解在另一个类中完成一个过程后,如何在我的活动中调用一个方法? 请看我的插图例子。在MyActivity中,我想在MyClass中调用一个名为DoSomething的当doSomething完成后,我希望MyClass(通知?、接口?、委托?、可观察?、插入“我不知道这里”)我完成的方法回到活动状态。 我看过接口。但我不明白重点。(您基本上promise实现一个方法?但是...为什么?您可以