if (obj != null){ System.out.println("redis"); plp = (ProductLinePojo) obj; System.out.println(obj); } if (plp != null){ System.out.println("sql"); plp = productLineDao.queryOne(id); redisService.set("plp-"+id,plp,100); System.out.println(plp); }请检查下为什么获取不到值
时间: 2024-02-14 11:14:11 浏览: 110
根据给出的代码片段,我无法确定哪些变量是如何声明的,例如 `plp`,`obj`,`productLineDao` 和 `redisService`。同时,代码中存在着两个 `if` 语句,这意味着 `plp` 可能不会在这两个条件中都进行赋值。因此,可能存在以下几个原因导致无法获取值:
1. 变量没有被正确初始化或声明,导致无法获取到值。
2. 变量在代码的其他位置被赋值,但是在这个片段中没有显示。
3. 第一个 `if` 语句中的条件 `obj != null` 可能不成立,因此代码块中的语句不会执行,导致 `plp` 没有被赋值。
4. 第一个 `if` 语句中的条件 `obj != null` 可能成立,但是 `plp` 可能没有被正确赋值。
5. 第二个 `if` 语句中的条件可能不成立,因此代码块中的语句不会执行,导致 `plp` 没有被赋值。
为了更好地理解问题,您可以提供更多的代码和上下文信息,以便我更好地帮助您解决问题。
相关问题
if (p.getImgurl() != null && p.getImgurl().trim().length() > 0) { sql += " ,imgurl=?"; obj.add(p.getImgurl()); } sql += " where id=?"; obj.add(p.getId()); System.out.println(sql); System.out.println(obj);
这段代码根据 `p` 对象的属性动态构建了一个 SQL 更新语句,并将参数值添加到一个 `obj` 列表中。最后,通过打印 `sql` 和 `obj` 的值,可以查看生成的 SQL 语句和参数值。
首先,代码检查 `p` 对象的 `imgurl` 属性是否不为 null 并且去除首尾空格后的长度大于 0。如果满足条件,则将 `imgurl` 字段添加到 SQL 语句中,并将对应的参数值添加到 `obj` 列表中。
接下来,代码将 `where id=?` 添加到 SQL 语句中,并将 `p` 对象的 `id` 属性添加到 `obj` 列表中作为参数值。
最后,代码打印输出生成的 SQL 语句和参数值,以便进行调试和验证。
例如,如果 `p` 对象的 `imgurl` 属性不为 null 并且值为 "example.jpg",`id` 属性为 1,则生成的 SQL 语句和参数值如下所示:
```java
String sql = "update products set name=?, price=?, category=?, pnum=?, description=?";
List<Object> obj = new ArrayList<>();
// ...
if (p.getImgurl() != null && p.getImgurl().trim().length() > 0) {
sql += " ,imgurl=?";
obj.add(p.getImgurl());
}
sql += " where id=?";
obj.add(p.getId());
System.out.println(sql);
System.out.println(obj);
```
输出:
```
update products set name=?, price=?, category=?, pnum=?, description=?, imgurl=? where id=?
[example.jpg, 1]
```
如上所示,生成的 SQL 语句会根据 `p` 对象的属性动态添加相应的字段和参数值。
如果您有其他问题或需要进一步的解释,请随时告诉我。
设计程序 public class Test { public static void main(String[] args){ Point p1=new Point(10,10); Point p2=p1.copy(); if(p1==p2) System.out.println("======="); if(p1.equals(p2)) System.out.println("++++++"); if(p1.equals(null)) System.out.println("******"); } }使输出结果为++++++
可以这样修改程序:
```
public class Test {
public static void main(String[] args){
Point p1 = new Point(10, 10);
Point p2 = p1.copy();
if(p1 == p2)
System.out.println("=======");
if(p1.equals(p2))
System.out.println("++++++");
if(p1.equals(null))
System.out.println("******");
}
}
class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public Point copy() {
return new Point(this.x, this.y);
}
@Override
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof Point)) {
return false;
}
Point other = (Point) obj;
return this.x == other.x && this.y == other.y;
}
}
```
输出结果为:
```
++++++
```
阅读全文