Java参数类型错误

Java参数类型错误,java,generics,Java,Generics,IDE抱怨:“错误的第二个参数类型:找到布尔值,必需:?” 将线路更换为以下位置: HashMap电影=(HashMap) 在泛型中,如果使用“?”通配符,则其类型称为unknown type,这意味着您不能为unknown type输入布尔值。希望它对你有用 这里非常适合泛型中的通配符,我建议您阅读一次。将行替换为以下内容: HashMap电影=(HashMap) 在泛型中,如果使用“?”通配符,则其类型称为unknown type,这意味着您不能为unknown type输入布尔值。希望它对

IDE抱怨:“错误的第二个参数类型:找到布尔值,必需:?”


将线路更换为以下位置:

HashMap电影=(HashMap)

在泛型中,如果使用“?”通配符,则其类型称为unknown type,这意味着您不能为unknown type输入布尔值。希望它对你有用


这里非常适合泛型中的通配符,我建议您阅读一次。

将行替换为以下内容:

HashMap电影=(HashMap)

在泛型中,如果使用“?”通配符,则其类型称为unknown type,这意味着您不能为unknown type输入布尔值。希望它对你有用


这里非常适合泛型中的通配符,我建议您阅读一次。

泛型不接受基元类型。它只接受对象。因此您应该像这样使用
Map mp=new HashMap()

泛型不接受基元类型。它只接受对象。因此您应该像这样使用
Map mp=new HashMap()

在的Java教程页面中,它指出:

需要注意的是,
List
List
是不同的。您可以将
对象
对象
的任何子类型插入
列表
。但您只能将
null
插入
列表
。本节提供了有关如何确定在给定情况下应使用何种通配符(如果有)的更多信息

你应该考虑使用通配符的推理。如果可能,不要使用通配符。如果您仍然需要使用一个,请使用适当的,以便可以知道类型

由于在其他数据类型中存储的是
布尔值
,因此唯一常见的父对象是
对象

HashMap<String, Object> movie;
HashMap电影;

在的Java教程页面中,它指出:

需要注意的是,
List
List
是不同的。您可以将
对象
对象
的任何子类型插入
列表
。但您只能将
null
插入
列表
。本节提供了有关如何确定在给定情况下应使用何种通配符(如果有)的更多信息

你应该考虑使用通配符的推理。如果可能,不要使用通配符。如果您仍然需要使用一个,请使用适当的,以便可以知道类型

由于在其他数据类型中存储的是
布尔值
,因此唯一常见的父对象是
对象

HashMap<String, Object> movie;
HashMap电影;


(1)IDE在哪一行抱怨?(2)
movieData
是如何声明的?能否共享IDE和方法声明?旁注:如果
b
是任何布尔表达式,则不必说
b?false:true
<代码>!b
也可以。(1)IDE在哪一行抱怨?(2)
movieData
是如何声明的?能否共享IDE和方法声明?旁注:如果
b
是任何布尔表达式,则不必说
b?false:true
<代码>!b
也可以。因为映射存储不同类型的数据,所以我不能将其声明为。@Rangtian Yu,你可以像4castle所说的那样使用HashMap电影,也可以像Boolean selectedBoolean那样;布尔选择==(布尔)电影。获取(“选择”)?假:真;selectedBoolean=选择;movie.put(“选择”,selectedBoolean);感谢您对SawyinWaimon的帮助,因为该映射存储不同类型的数据,所以我不能将其声明为。@Rangtian Yu,您可以像4castle所说的那样使用HashMap movie,也可以像Boolean selectedBoolean一样;布尔选择==(布尔)电影。获取(“选择”)?假:真;selectedBoolean=选择;movie.put(“选择”,selectedBoolean);感谢您的帮助SawyinWaimon,因为地图存储不同类型的数据,所以我不能将其声明为。但是,如果我使用HashMap movie=movieData.getItem(position);它会起作用的。你能像这样检查一下吗。。。HashMap movie=(HashMap)movieData.getItem(position);我认为您可以这样声明,因为在您的方法中,您将布尔值作为值,并且因为您不确定类型,所以在右侧,您可以使用通配符类型。这样,您的代码将坚持使用泛型,这很好。@pbajpai21不起作用,因为它仍然将映射限制为仅存储布尔值。OP说他们也在存储其他数据类型。因为地图存储不同类型的数据,所以我不能将其声明为。但是,如果我使用HashMap movie=movieData.getItem(position);它会起作用的。你能像这样检查一下吗。。。HashMap movie=(HashMap)movieData.getItem(position);我认为您可以这样声明,因为在您的方法中,您将布尔值作为值,并且因为您不确定类型,所以在右侧,您可以使用通配符类型。这样,您的代码将坚持使用泛型,这很好。@pbajpai21不起作用,因为它仍然将映射限制为仅存储布尔值。OP说他们也在存储其他数据类型。感谢您的帮助4castle感谢您的帮助4castle
HashMap<String, Object> movie;