GVKun编程网logo

如何将类型“ java.lang.String”的值转换为属性“ typeService”的必需类型“ com.boots.models.TypeServiceModel”? (更新))

3

在本文中,我们将带你了解如何将类型“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”? (更新))

如何将类型“ 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
    }
}
,
  1. 简便方法:使用字符串而不是诸如

    之类的类型来更改选项的值

    value =“ $ {type.uniqueTypeStringValue} 并更改Java方法的签名以获取String参数而不是TypeServiceModel。然后,如果您在某处具有所需的信息,则可以执行逻辑以将该唯一字符串转换为类型参数对象

  2. 添加一个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: ...

### 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)' 不能应用于 '()'

如何解决''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}`'

如何解决''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

如何解决Android Studio,java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Long

我不断收到此错误消息

java.lang.classCastException: java.lang.String 不能转换为 java.lang.Long

我正在尝试使用共享首选项在活动之间传递一个长值,这是我的第一个活动的代码

  1. SharedPreferences sp = getApplicationContext().getSharedPreferences("userdata",Context.MODE_PRIVATE);
  2. Calendar cal = Calendar.getInstance();
  3. SharedPreferences.Editor editor = sp.edit();
  4. editor.putLong("time"+i,cal.getTimeInMillis());
  5. editor.commit();

这是我的第二个活动的代码。

  1. ArrayList<Long> time = new ArrayList<Long>();
  2. sp = getSharedPreferences("userdata",Context.MODE_PRIVATE);
  3. 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的相关信息,可以在本站进行搜索。

本文标签: