【问题标题】:How to return array element in java [Ljava.lang.String;@139bb134如何在java中返回数组元素[Ljava.lang.String;@139bb134
【发布时间】:2021-06-05 19:09:19
【问题描述】:

我正在尝试返回一个数组,但它会抛出垃圾值。这是我的代码:

int currentPage = 1;
String[] page = {page1, page2, page3};
    page = new String[currentPage];
return page;

更新

    public static String[] pagingIndex(int currentPage, int lastPage, String url) {
    
    String pageHeader = "<li class=\"page-item\"><a class=\"page-link\" href=\""+url;
    String currentPageHeader = "<li class=\"page-item active\" aria-current=\"page\"><a class=\"page-link\">";
    String pageFooter = "</a></li>";
    
    String page1 = 
            currentPageHeader + (currentPage) + pageFooter +
            pageHeader + (currentPage + 1) +"\">" + (currentPage + 1) + pageFooter +
            pageHeader + (currentPage + 2) +"\">" + (currentPage + 2) + pageFooter;
    
    String page2 = 
            pageHeader + (currentPage - 1) +"\">" + (currentPage - 1) + pageFooter +
            currentPageHeader + (currentPage) + pageFooter +
            pageHeader + (currentPage + 1) +"\">" + (currentPage + 1) + pageFooter;
    
    String page3 = 
            pageHeader + (currentPage - 2) +"\">" + (currentPage - 2) + pageFooter +
            pageHeader + (currentPage - 1) +"\">" + (currentPage - 1) + pageFooter +
            currentPageHeader + (currentPage) + pageFooter;
    
    String[] page = {page1, page2, page3};
return page[currentPage];
}

这是我的完整代码。我试图显示一页,而总共有 3 页。现在打印如下

public static void main(String arg[]) {
    String url = "http://localhost:8080";
    System.out.println(Paging.pagingIndex(1, 9, url)); 
    }

现在它的输出是:

线程“main”java.lang.Error 中的异常:未解决的编译 问题:类型不匹配:无法从 String 转换为 String[]

在 parvaz.commons.paging.Paging.pagingIndex(Paging.java:193) 在 parvaz.Testing.main(Testing.java:9)

【问题讨论】:

  • 谁又在扔什么?请展示您如何使用返回值。很可能您尝试以错误的方式打印数组。
  • 使用 java.util.Arrays.toString 显示可读的数组值。并显示minimal reproducible example,发布的内容看起来无效。

标签: java arrays methods return-value


【解决方案1】:

您正在返回一个大小为 1 的新字符串数组。
通过说page = new String[currentPage],您将 page 覆盖为大小为 1 的新数组。
我假设您想通过 return page[currentPage]; 返回单个页面。

编辑:您还必须将方法签名中的返回类型调整为 String 而不是 String[]。

【讨论】:

  • ` String[] page = {page1, page2, page3}; return page[currentPage];` eclipse 通过说Type mismatch: cannot convert from String to String[] 抛出错误
  • @JoshiK 如果您没有在问题中显示Minimal, Complete, and Verifiable Example 并且没有解释代码的实际目标是什么,那么很难为您提供帮助。但是你得到的错误似乎取决于你的方法返回一个数组,而 VocalTrance 的答案会让它返回一个字符串。那么你到底想做什么呢?
  • 您必须更改方法签名以返回 String 而不是 String[]。编辑:仍然假设您的方法想要返回一个页面。
  • @VocalTrance 您应该将其纳入您的答案中。它的工作非常重要。
  • @VocalTrance 当我应用您的建议时,它会抛出错误。请检查我是否更新了我的问题
【解决方案2】:

您需要将pagingIndex的方法签名更改为String。所以你把它改成:

public static String pagingIndex(int currentPage, int lastPage, String url) {
    ...
    ...
    ...
    return page[currentPage];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2016-07-23
    • 1970-01-01
    • 2021-12-11
    相关资源
    最近更新 更多