package lyl;class tst { private static double pi = 3.14; private double radius; private int height; public tst(double r, int h) { radius = r; height = h; } public void compare(tst v) { if (this == v) System.out.println("这两个数相等"); else System.out.println("这两个数不相等"); }}public class text { public static void main(String[] args) { tst v1 = new tst(2.0, 3); tst v2 = new tst(2.0, 3); tst v3 = v1; v1.compare(v2); v1.compare(v3); }}输出结果是什么
时间: 2023-06-24 07:05:03 浏览: 64
输出结果是:
这两个数不相等
这两个数相等
原因是:
在比较 v1 和 v2 时,虽然它们的属性值相同,但它们是不同的对象,因此它们的引用地址不同,所以输出为“这两个数不相等”。
而在比较 v1 和 v3 时,v3 是直接将 v1 的引用赋值给它的,所以它们引用的是同一个对象,因此输出为“这两个数相等”。
相关问题
mybaits-plus Invalid bound statement (not found): com.lyl.mapper.UserMapper.deleteById
根据提供的引用内容,出现"Invalid bound statement (not found)"的原因可能是MyBatis-Plus无法找到对应的Mapper方法。解决这个问题的方法是检查Mapper接口中是否存在名为"deleteById"的方法,并且该方法的参数类型与传入的参数类型一致。如果Mapper接口中不存在该方法,则需要手动添加该方法。
以下是一个示例代码,演示如何使用MyBatis-Plus的deleteById方法删除指定id的记录:
```java
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public boolean deleteUserById(Long id) {
int result = baseMapper.deleteById(id);
return result > 0;
}
}
```
在上面的示例代码中,我们使用了MyBatis-Plus提供的BaseMapper接口中的deleteById方法来删除指定id的记录。在Service层中,我们可以直接调用baseMapper的deleteById方法来实现删除操作。
private VideoPlayerUIParam GetFirstVideoPlayer(VideoPlayerUIParam videoPlayer, Vector3 position) { var deviceByScene = GameEntry.DeviceMgr.GetCurrentSceneCamera(); var camera = deviceByScene.Find(item => item.VideoParam.Equals(videoPlayer.CameraInfo)); return Vector3.Distance(camera.transform.position, position) > AppGlobel.AppSettings.CameraFlushTime.distance ? position.GetUIParams ().First() : videoPlayer; }
根据您提供的代码,以下是一些可能的优化建议:
1. 减少方法调用和变量访问
在代码中,调用了多个方法和变量。这可能会导致一些性能问题。您可以尝试减少方法调用和变量访问,以提高代码性能。例如,将`GameEntry.DeviceMgr.GetCurrentSceneCamera()`的返回值存储在变量中,以避免多次调用该方法。
2. 缩短行数和提高可读性
这个方法在一行中有多个判断和返回语句,这可能会影响代码的可读性和维护性。您可以尝试缩短代码行数,并使代码更易于阅读和理解。例如,使用三元运算符来简化条件判断。
3. 改善命名和注释
代码中的变量名和方法名可能不够清晰,这可能会导致代码难以理解。您可以尝试改善变量和方法的命名,并添加注释来解释代码的作用和目的。
下面是一个可能的优化版本,供您参考:
```csharp
private VideoPlayerUIParam GetFirstVideoPlayer(VideoPlayerUIParam videoPlayer, Vector3 position)
{
// Get the current scene camera from the device manager
var deviceByScene = GameEntry.DeviceMgr.GetCurrentSceneCamera();
var camera = deviceByScene.Find(item => item.VideoParam.Equals(videoPlayer.CameraInfo));
// Check the distance between the camera and the given position
if (Vector3.Distance(camera.transform.position, position) > AppGlobel.AppSettings.CameraFlushTime.distance)
{
// If the distance is greater than the threshold, return the first UI param from the position
return position.GetUIParams().First();
}
else
{
// Otherwise, return the original video player
return videoPlayer;
}
}
```
在这个示例中,我们使用了以下优化:
1. 将`GetCurrentSceneCamera()`的返回值存储在变量中,避免多次调用该方法。
2. 使用三元运算符简化条件判断。
3. 改善了变量和方法的命名,并添加了注释来解释代码的作用和目的。
阅读全文