我还在学习Java,我一直在读几个网站上的文章.我在Java Code Geeks上发现了一篇文章,我有一个问题.文章解释了开放/封闭原则.本文使用了一个对公司产品应用折扣的方案.代码的第一部分如下:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Discount {
public BigDecimal apply(BigDecimal price) {
BigDecimal percent = new BigDecimal("0.10");
BigDecimal discount = price.multiply(percent);
return price.subtract(discount.setScale(2, RoundingMode.HALF_UP));
}
}
Run Code Online (Sandbox Code Playgroud)
代码的第二部分如下:
import java.math.BigDecimal;
public class DiscountService {
public BigDecimal applyDiscounts(BigDecimal price,Discount discount) {
BigDecimal discountPrice = price.add(BigDecimal.ZERO);
discountPrice = discount.apply(discountPrice);
return discountPrice;
}
}
Run Code Online (Sandbox Code Playgroud)
在Oracle的网站上,它表示BigDecimal中的ZERO的值为0,标度为零.这是否意味着price.add(BigDecimal.ZERO)
我们只是在引入的价格中加0?如果是这样,为什么?或者只是从价格中删除小数位?或者它有其他目的吗?
谢谢!
我在High Sierra Macbook Air上使用Netbeans 8.2时遇到问题。当它打开时,它会执行一些似乎正常进行的启动操作,然后暂停一分钟左右,然后显示“为中央存储库拆包索引”。这就是卡住的地方。即使坐了几个小时,它也永远不会完成该过程。
以下是一些可能会或可能不会重要的事情,但前提是它们很重要:
在Netbeans的底部,在显示更新索引消息的右侧,有一个带有数字1的红色气泡。该气泡甚至在解压缩开始之前就存在。当我单击它时,它会弹出一个通知,但所有通知都说是“向左按钮”。
我最初在一两年前下载Netbeans是为了上一门Java课程。当时我们在服务器上使用Apache Tomcat。我最近没有尝试对Apache做任何事情。
我大约4个月前下载了Glassfish。不记得我是否正在安装新的JDK。从第一个Java类开始,我就没有使用过Netbeans,但是我正在学习一个新的Java类,该类可以让我进行更新。不知道我是否尝试连接到Glassfish服务器(是吗?)。但是,此后我没有使用Netbeans,因为我可以在另一台装有Netbeans的计算机上进行作业。我认为Netbeans当时已经奏效了。我记得能够调出一些代码。但是,现在,当我尝试打开一个项目时,什么也没发生。
任何帮助表示赞赏。
顺便说一句,尝试在netbeans.org上注册一个帐户以在此问这个问题,但我仍然没有收到允许我发布的验证电子邮件。
jQuery
Datatables
我在使用数据排序时遇到问题。
我有一个有很多列的表。我要排序的列是Document Number
。有些文档编号以 A 开头,有些则没有。我正在尝试按降序对它们进行排序,而不考虑该字母A
。
目前数据如下:
A83052
A83030
A83019
A08565
A08554
A08542
A08455
08500
08365
08345
00098
Run Code Online (Sandbox Code Playgroud)
但我希望它按如下方式排序:
A83052
A83030
A83019
A08565
A08554
A08542
08500
A08455
08365
08345
00098
Run Code Online (Sandbox Code Playgroud)
然而,我确实必须将 A 留在那里,因为它是Document number
.
这是我的代码:
j$("table[id$=policyBlock]").DataTable({
"order": [[0, 'desc']],
"bFilter": false,
"bPaginate": false,
"bInfo": false
});
Run Code Online (Sandbox Code Playgroud)
我尝试做的是在“bInfo”字段后添加以下内容:
"columnDefs": [ {
"targets": 0,
"render": function( data, type, row ) {
return type=="sort" ? data.replace(/\D/g,'') : data;
}
}]
Run Code Online (Sandbox Code Playgroud)
然后该列表按如下方式自行排序:
00098
08365
08500
A83019
A08565 …
Run Code Online (Sandbox Code Playgroud) 我正在使用 ngx-datatable 创建一个可以编辑、添加和删除的设置项列表。我想要做的是在行尾有一个带有编辑按钮的数据行。当我单击编辑按钮时,单元格变为可编辑状态,行尾分别出现保存和取消按钮,编辑按钮消失。然后,当您单击“保存”或“取消”按钮时,单元格将不再可编辑,并且编辑按钮再次出现在该行上。我正在尝试使用一种方法来处理编辑并切换到“保存”和“取消”按钮。
我的HTML,没有方法,如下:
<ng-template let-value="value" let-rowIndex="rowIndex" ngx-datatable-cell-template>
<span class="mobile-hidden button-spacing">
<button ion-button small *ngIf="editing != rowIndex" (click)="editing[rowIndex + '-name'] = true">Edit</button>
<button ion-button small *ngIf="editing === rowIndex" (click)="updateValue($event, 'name', rowIndex)">Save</button>
<button ion-button outline small *ngIf="editing === rowIndex">Cancel</button>
</span>
</ng-template>
Run Code Online (Sandbox Code Playgroud)
使用该 HTML,当我单击“编辑”时,“名称”单元格变得可编辑。我目前必须移开或单击表格的另一个区域以使单元格不可编辑。当我编辑单元格时,“编辑”按钮仍保留在屏幕上,“保存”和“取消”按钮均不出现。
我正在尝试使用带有“编辑”按钮的方法来显示“保存”和“取消”按钮。新行如下:
<button ion-button small *ngIf="editing != rowIndex" (click)="storeOldValues(rowIndex)">Edit</button>
Run Code Online (Sandbox Code Playgroud)
然后我在 TypeScript 文件中创建函数:
storeOldValues(rowIndex) {
this.nameOld = this.rows[rowIndex].name;
this.editing[rowIndex + '-name'] = true;
this.editing = rowIndex;
}
Run Code Online (Sandbox Code Playgroud)
使用该方法后,当我单击“编辑”(该方法的第三行)时会出现“保存”和“取消”按钮,但我无法实际编辑单元格。问题似乎是同时使用该方法的第二行和第三行,因为当我注释掉第三行时,该单元格再次可编辑,但没有出现保存和取消按钮。
我从 ngx-datatable 演示代码中得到了该方法的第二行,但我不太明白它是如何工作的。我想知道这是否是我无法使代码工作的部分原因。具体来说,“rowIndex + '-name'”是如何工作的?看起来它只是将文字“-name”连接到 rowIndex,但我确信这不是它的作用。这如何使名称单元格可编辑?名字前面的减号有什么作用?有没有更好的方法来做我想做的事情?
谢谢!
我有一个名为CustomerTypeApp的主类.它有一个类变量private static float itemPrice = 0.0f
.在main方法中是以下代码:
String promptType = (" To determine a discount for " + nf.format((float) itemPrice) + ", type in the... ...Select => ");
char customer = Validation.getChar(promptType);
Run Code Online (Sandbox Code Playgroud)
我还有一个名为Validation的类,其方法是getChar.代码如下:
public static char getChar(String prompt){
String input;
char choice;
System.out.printf(" " + prompt);
input = sc.nextLine();
choice = input.charAt(0);
return choice;
}
Run Code Online (Sandbox Code Playgroud)
在CustomerTypeApp类中,nf.format显然是指NumberFormat.但是,教授说我们不能使用NumberFormat而是必须使用printf.getChar方法确实使用了printf语句.但是,我无法传递printf(变量?)的值.这就是我的意思:我编辑了CustomerTypeApp的代码,如下所示:
String promptType = (" To determine a discount for $%.2s, type in the... ...Select => ");
Run Code Online (Sandbox Code Playgroud)
问题是我必须通过itemPrice传递$%.2s.我尝试将它添加到promptType的末尾,如下所示:
(" To determine...$%.2s...Select => ", itemPrice); …
Run Code Online (Sandbox Code Playgroud)