我在Web应用程序(使用Spring和Hibernate)中实现分页,需要类似以下内容。
public static int deleteSingle(long totalRows, long pageSize, int currentPage)
{
return totalRows==currentPage*pageSize-pageSize ? currentPage-- : currentPage;
}
假设我从如下位置调用此方法。
deleteSingle(24, 2, 13);
使用这些参数,条件得到满足,并且应返回变量
currentPage
(即13)减1(即12)的值,但不会减小currentPage
的值。在此调用之后,它将返回原始值13。我必须更改以下方法才能使其按预期工作。
public static int deleteSingle(long totalRows, long pageSize, int currentPage)
{
if(totalRows==currentPage*pageSize-pageSize)
{
currentPage=currentPage-1; //<-------
return currentPage; //<-------
}
else
{
return currentPage;
}
}
那么为什么不使用减量运算符-
currentPage--
将值减1?为什么需要-在这种情况下currentPage=currentPage-1;
? 最佳答案
在您的return语句中,它使用currentPage--
导致返回后的递减。您希望--currentPage
在返回之前进行递减。就个人而言,使用类似这样的复杂语句,您可能还是希望出于可读性的考虑而将其分解,但这是优先考虑的问题。
(从技术上讲,它在读取后会递减。当它递减时,return语句会发生变化,这没有什么特别的。)
如果由我决定,我的爱好是这样做:
public static int deleteSingle(long totalRows, long pageSize, int currentPage)
{
if(totalRows==currentPage*pageSize-pageSize)
{
currentPage--;
}
return currentPage;
}
关于java - Java的return语句中的减量(或增量)运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15212591/