在本文中,我们将带你了解如何将类型“java.lang.String”的值转换为属性“typeService”的必需类型“com.boots.models.TypeServiceModel”?在这篇文
在本文中,我们将带你了解如何将类型“ java.lang.String”的值转换为属性“ typeService”的必需类型“ com.boots.models.TypeServiceModel”? 在这篇文章中,我们将为您详细介绍如何将类型“ java.lang.String”的值转换为属性“ typeService”的必需类型“ com.boots.models.TypeServiceModel”? 的方方面面,并解答更新常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...、'com.company.MotherBoard' 中的错误 'MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)' 不能应用于 '()'、'string' 类型的参数不能分配给 '`${string}` 类型的参数 | `${string}.${string}` | `${string}.${number}`'、Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long。
本文目录一览:- 如何将类型“ java.lang.String”的值转换为属性“ typeService”的必需类型“ com.boots.models.TypeServiceModel”? (更新))
- ### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...
- 'com.company.MotherBoard' 中的错误 'MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)' 不能应用于 '()'
- 'string' 类型的参数不能分配给 '`${string}` 类型的参数 | `${string}.${string}` | `${string}.${number}`'
- Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long
如何将类型“ java.lang.String”的值转换为属性“ typeService”的必需类型“ com.boots.models.TypeServiceModel”? (更新))
HTML与字符串一起使用。 Spring需要一种将Strings转换为在表单支持对象中声明的类型的方法。由于Spring不了解TypeServiceModel
,因此这不是自动的。您将需要实现一个自定义转换器:
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import java.util.UUID;
@Component
public class StringToTypeServiceModelConverter implements Converter<String,TypeServiceModel> {
@Override
public TypeServiceModel convert(String s) {
return ... // do conversion here
}
}
,
-
简便方法:使用字符串而不是诸如
之类的类型来更改选项的值value =“ $ {type.uniqueTypeStringValue} 并更改Java方法的签名以获取String参数而不是TypeServiceModel。然后,如果您在某处具有所需的信息,则可以执行逻辑以将该唯一字符串转换为类型参数对象
-
添加一个Jackson库(如果使用Maven,则为依赖项)并将其配置为在类型之间进行自动转换。检出https://www.baeldung.com/jackson-deserialization和https://www.baeldung.com/jackson-object-mapper-tutorial
### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...
### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String
### Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String] with root cause
java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String
at org.apache.ibatis.ognl.OgnlOps.compareWithConversion(OgnlOps.java:92)
at org.apache.ibatis.ognl.OgnlOps.isEqual(OgnlOps.java:142)
at org.apache.ibatis.ognl.OgnlOps.equal(OgnlOps.java:794)
at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:53)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:494)
......
在MVC开发中习惯使用原有的类作为传参方式:
javaBean:
该javaBean上建立扩展类:
数据库中,blog表和blogType表存在外键关系,所以在blog类的实现上,要建立一个blogType的类做属性。
在该查询中,显示的异常信息可知,invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String,不能比较(blogType和String)
sql语句的拼接中,判断该类是否为空就行了,我就照着前面的一路CV,从而忽略了这个错误(根本是没注意到这样的问题)。
所以这里要注意啊:代码套路深,CV需谨慎啊。CV自己的代码都能坑死自己啊。
日常报错ing,吸取更多的教训,写出更优雅的代码,同时希望能帮助到同是坎坷路上的码友们。
'com.company.MotherBoard' 中的错误 'MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)' 不能应用于 '()'
如何解决''com.company.MotherBoard'' 中的错误 ''MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)'' 不能应用于 ''()''
我一直试图在另一个类中实例化一个类的对象,但它给了我标题中描述的错误。
例如,代码如下所示:
package com.company;
public class Desktop {
private String coolerType;
public motherboard mb = new motherboard();
public GraphicsCard gpu = new GraphicsCard();
public String getCoolerType() {
return coolerType;
}
public void setCoolerType(String coolerType) {
if(!this.coolerType.isEmpty()) {
this.coolerType = coolerType;
}
}
public Desktop(String coolerType) {
this.coolerType = coolerType;
}
}
“motherboard”和“GraphicsCard”是项目中的类,我想在“Desktop”类中实例化它们。
任何帮助将不胜感激:)
'string' 类型的参数不能分配给 '`${string}` 类型的参数 | `${string}.${string}` | `${string}.${number}`'
如何解决''string'' 类型的参数不能分配给 ''`${string}` 类型的参数 | `${string}.${string}` | `${string}.${number}`''
我已将 react-hook-forms
从 v.6 迁移到 v.7。
更改register
方法后,如migration guide中指出的,出现如下错误:
''string'' 类型的参数不能分配给 ''${string}
类型的参数 | ${string}.${string}
| ${string}.${number}
''。 TS2345
注册需要一个字符串名称,我正确地提供了一个参数,它肯定是一个字符串,但无论如何它不接受我的参数,如果我不完全传递字符串。
非常感谢有类似问题或任何想法的任何人。提前致谢!
解决方法
react-hook-form
v7 中的
register()
不接受字符串,但字符串 literal。这是 register
的定义:
export declare type UseFormRegister<TFieldValues extends FieldValues> = <
TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>
>(
name: TFieldName,options?: RegisterOptions<TFieldValues,TFieldName>
) => RefCallbackHandler;
TFieldName
是文字的联合。文字是特定的字段名称值。请参见下面的示例:
interface IFormValues {
firstName: string;
lastName: string;
}
const { register,handleSubmit } = useForm<IFormValues>();
const firstNameId = ''firstName''; // string literal
const lastNameId: string = ''lastName''; // string
return (
<form onSubmit={handleSubmit(onSubmit)}>
// this works because first argument is ''firstName'' | ''lastName''
<input {...register(firstNameId)} />
// this does not work because it''s just a string instead of one of the
// two literal values
<input {...register(lastNameId)} />
<input type="submit" />
</form>
);
解决方案
offical example 中提出的解决方案对我来说有点冗长,但目前有效。
您需要将寄存器名称转换为文字:
<input key={field.id} {...register(`test.${index}.test` as const)} />
但是,如果 index
是数字,则上述解决方案不起作用。当您将文字与数字混合时,如下所示:
`test.${index}.test`
因为 index
可以是任意数字,所以 typescript 无法将其强制转换为精确值。文档中提出的解决方法是手动转换为文字:
{...register(`test.${index}.test` as `test.0.test`)}
Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long
如何解决Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long
我不断收到此错误消息
java.lang.classCastException: java.lang.String 不能转换为 java.lang.Long
我正在尝试使用共享首选项在活动之间传递一个长值,这是我的第一个活动的代码
SharedPreferences sp = getApplicationContext().getSharedPreferences("userdata",Context.MODE_PRIVATE);
Calendar cal = Calendar.getInstance();
SharedPreferences.Editor editor = sp.edit();
editor.putLong("time"+i,cal.getTimeInMillis());
editor.commit();
这是我的第二个活动的代码。
ArrayList<Long> time = new ArrayList<Long>();
sp = getSharedPreferences("userdata",Context.MODE_PRIVATE);
time.add(sp.getLong("time"+i,0)); // here is where the error occurs
“time”末尾的 +i 的原因是这些 put 和 receive 消息在 for 循环中运行,因为有多个 long 正在传递并且顺序很重要。请告诉我是否还有其他方法可以执行此操作或如何解决此异常。
谢谢
我们今天的关于如何将类型“ java.lang.String”的值转换为属性“ typeService”的必需类型“ com.boots.models.TypeServiceModel”? 和更新的分享就到这里,谢谢您的阅读,如果想了解更多关于### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...、'com.company.MotherBoard' 中的错误 'MotherBoard(java.lang.String, java.lang.String, float, java.lang.String)' 不能应用于 '()'、'string' 类型的参数不能分配给 '`${string}` 类型的参数 | `${string}.${string}` | `${string}.${number}`'、Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long的相关信息,可以在本站进行搜索。
本文标签: