我有一个Value
班级,其中有一个Object value
.我想将值用作String
,Integer
或Double
.
该asDouble
方法控制instanceof
值对象.如果不是Double
或Integer
返回0
.
一般来说它有效但有时虽然有效Double
returns 0;
.我不能理由.
当我调试时,我可以看到:
这是我的Value类
public class Value{
public Object value;
public Value(Object value) {
this.value = value;
}
public Double asDouble() {
if (this.value instanceof Integer || this.value instanceof Double) {
return Double.parseDouble(String.valueOf(this.value));
} else {
return 0.0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
谁能解释我哪里出错了?
我正在尝试将 linq 与实体框架一起使用。在下面的代码中,第一个连接是红色波浪线,我有这个错误。
严重性代码 说明 项目文件行抑制状态错误 CS1941 join 子句中的表达式之一的类型不正确。调用“Join”时类型推断失败
代码
var vals = (from o in db.Words
join r in db.Results
on o.Id equals r.root
join s in db.Senses on r.Id equals s.results_id
select o ).Take(10) ;
Run Code Online (Sandbox Code Playgroud)
编辑:
经过评论并意识到我的错误代码后,我决定添加我的实体类。当我运行我的项目时,实体框架在 Sql Server 上创建 Id 和 root_Id 列,然后我认为我可以使用Resultset.root equals Words.Id 结构
public class Word{
[Key]
public int Id { get; set; }
...}
public class Result{
[Key]
public int Id { get; set; }
public virtual Word root { get; set; …
Run Code Online (Sandbox Code Playgroud)