通用方法不适用于“int”类型变量?

2023-12-08

我在使用两个变量时遇到了一些麻烦:int 和 Integer。 它们大致相同,但是(如下面的代码所示)它们的行为并不总是相同。 这是我的问题: 这段代码运行得非常完美。我创建了一个通用方法 printArray ,它需要任何类型变量的数组(因为它是通用的)才能工作。 这里我使用变量类型Integer。 但是,当我将数组“getal”类型更改为 int(而不是 Integer)时,方法 printArray 不再起作用。这是为什么?泛型方法不适用于 int 类型变量吗?

package Oefenen;

public class printArray
{
    public static void main (String args[])
    {
        Integer[] getal = {10, 20, 30, 40, 50};
        printArray(getal);  
    }

    public static <E> void printArray (E[] intArray)
    {
        for (E element : intArray)
        {   
            System.out.printf("%s\n", element);
        }
    }
}

ps:如果我将通用方法更改为仅适用于 int 的方法,它确实有效。 所以我在想问题是:通用方法不适用于 int 。 我是吗


泛型方法仅适用于 Object 的子类型。 Integer 是 Object 的子类型。 int 不是对象而是原语。所以这是预期的行为。这link很有用

这相关的question可能也有用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通用方法不适用于“int”类型变量? 的相关文章

随机推荐

  • 如何在 LINQ 中按大小写排序

    我有这个答案实体框架 OrderBy CASE WHEN 但这只能处理两个选项 var p ctx People OrderBy p gt p IsQualityNetwork 1 p IsEmployee 1 0 1 ThenBy p g
  • 高效的 HTML Div,其中有漏洞

    让我多解释一下 我试图拥有一个大区域 全屏 其中有一个固定大小的孔 该孔将跟随鼠标在屏幕上移动 想象一下 将范围集中在页面上 而页面的其余部分呈灰色 我需要它在所有浏览器 包括 IE 6 中有效地工作 我当前的解决方案使用 4 个 div
  • pthread_create 无法与 pthread_attr_setschedparam 一起正常工作

    我是线程编程的新手 所以我对这个看似愚蠢的问题表示歉意 我正在尝试使用 pthread attr t 使用 pthread create 创建 POSIX 线程 我正在尝试设置 sched priority 值并将其放入属性中 代码粘贴在下
  • 当连接到一个非常小的/空表时,为什么尽管我使用“LIMIT”,MySQL 仍进行完整扫描?

    编辑 我删除了GROUP BY示例查询中的子句 但同样的问题显示 当我将表 x 连接到空 1 行表 y 时 尽管我使用了限制 MySQL 对表 x 进行全表扫描 原问题 我试图学习如何优化 SQL 查询 但遇到了我无法理解的行为 有这样的模
  • 如何从一个表单刷新另一个表单?

    我有两种形式 form1 和 form2 我使用以下代码片段从 form1 调用 form2 Application run new Form2 Form2 f2 new Form2 f2 show 这段代码运行得非常好 我可以看到 for
  • 如何使用 javascript 将数据显示为 HTML

    我在使用 javascript 将数据显示为 HTML 时遇到问题 我创建的代码仅显示最新数据而不是整个数据 我在开发中使用phonegap 这是代码 var oldHtml document getElementById favorite
  • VBA:搜索子字符串并删除整行

    我正在尝试删除字符串中包含 H 的所有行P柱子 然而 该宏有效 每次只删除一半的必要行 这是因为For代码中的循环 当删除一行时 下一行将具有相同的内容i值作为删除的值 并被跳过Next i Dim LastRow As Long Find
  • 在 Windows 10 中设置环境变量以使用 java 和 javac

    我有一台装有 Windows 10 的新笔记本电脑 我想对其进行设置以便可以使用java and javac从命令行 我已经在网上搜索过 但所有指南都是针对以前的版本 我不想搞乱我不明白的东西 只需将环境变量中的path变量设置为JDK b
  • Swift 中的 CLLocation Manager 获取用户位置

    我正在尝试将 ObjC 中的旧应用程序转换为 Swift 作为练习 但遇到了一些问题 我在旧应用程序中的方式是建立 CLLocation Manager 然后我将使用 manager CLLocationManager alloc init
  • 如何在 MATLAB 中测量图像的旋转?

    我有两个图像 一个是原始的 另一个是旋转的 现在 我需要找出图像旋转的角度 到目前为止 我考虑过发现每种颜色的质心 因为我将使用的每个图像都有带有颜色的正方形 并用它来发现图像旋转了多少 但我失败了 我用它来发现图像中较高方块的质心和颜色
  • Webpack 的 stylus-loader 入门

    好吧 新的 我刚刚添加了我的stylus loader style loader 根据推荐stylus loader 和装载机 test styl loader style loader css loader stylus loader 到
  • Hibernate - 它会改变数据库的结构吗?

    我正在 Spring 上用 java 构建更大的项目 很多人建议我使用 hibernate 来简化对数据库的访问 问题是 我必须使用这个项目以前版本的数据库 它曾经是用 PHP 编写的 所以他们肯定没有使用 hibernate 我读过一些有
  • 为什么无法转换 Slice 类型?

    我想知道为什么你不能这样做 type Foo struct A int type Bar Foo foos Foo Foo 1 Foo 2 bars Bar foos cannot convert foos type Foo to type
  • HTTP 状态 500 实例化 servlet 类时出错 [重复]

    这个问题在这里已经有答案了 我正在编写一个 Web 应用程序并将其部署到 apache tomcat Web 容器 我遵循一个简单的教程http cse csusb edu turner java web programming servl
  • 使 div 跨越网格中的两行

    我有一页充满了块 其中堆积着display inline block 我想让一些大四到两倍 所以我用了float left or right放置其他块 我的问题是如果我有五元素行 我怎样才能放一个更大的元素在中间它的 作为float自然地放
  • 更新路径“x”会在“x”处产生冲突

    当我尝试更新 upsert 项目时发生此错误 Updating the path x would create a conflict at x 字段应出现在 set or in setOnInsert 两者都没有
  • 在 Xcode 4 中重命名项目

    我一定错过了一些明显的东西 但我不知道如何在 Xcode 4 中重命名我的项目 如果我没记错的话 Xcode 3 有一个专门的菜单项 但 Xcode 4 中没有这样的条目 好吧 事实证明这确实是一件小事 您所需要做的就是点击两次slowly
  • 如何根据负载在kubernetes中自动缩放elasticsearch?

    我正在使用 Google Cloud 正在做 RnD 是否可以申请HPAKubernetes 中 Elasticsearch 上的 水平 Pod 自动缩放 I did elasticsearch设置于Kubernetes https git
  • 如何在 Windows 上的 Anaconda Python 中安装 Keras 和 Theano?

    我正在尝试使用以下 Keras 包在 Python 中处理神经网络 from keras utils import np utils from keras layers core import Dense Activation Dropou
  • 通用方法不适用于“int”类型变量?

    我在使用两个变量时遇到了一些麻烦 int 和 Integer 它们大致相同 但是 如下面的代码所示 它们的行为并不总是相同 这是我的问题 这段代码运行得非常完美 我创建了一个通用方法 printArray 它需要任何类型变量的数组 因为它是