我有tyo字节变量
byte a = 3;
byte b = 4;
Run Code Online (Sandbox Code Playgroud)
如果我求和它们,sum的值是整数.
byte z = a+b //error, left side is byte, right side is integer
Run Code Online (Sandbox Code Playgroud)
为什么a + b是int?
我正在尝试将AVLTree实现转换为堆样式数组,并且在泛型方面存在一些问题:
public class MyAVLTree<K extends Comparable<? super K>, E> implements
OrderedDictionary<K, E> {
class AVLNode implements Locator<K, E>{
// ...
}
// ....
public Locator<K,E> [] toBSTArray() {
AVLNode[] bArray = new AVLNode[size];
makeArray(root, 0, bArray); // recursion
return bArray;
}
}
Run Code Online (Sandbox Code Playgroud)
在该行AVLNode[] bArray = new AVLNode[size];我得到以下错误:
"无法创建MyAVLTree.AVLNode的通用数组"
我不明白我做错了什么.有帮助吗?
当一个类有自己的静态实例时,我无法理解初始化顺序.此外,为什么这种行为似乎有所不同String.
请参阅以下示例:
public class StaticCheck {
private static StaticCheck INSTANCE = new StaticCheck();
private static final List<String> list =
new ArrayList<String>(Arrays.asList("hello"));
private static final Map<String, String> map =
new HashMap<String, String>();
private static final String name = "hello";
public static StaticCheck getInstance() {
return INSTANCE;
}
private StaticCheck() {
load();
}
private void load() {
if(list != null) {
System.out.println("list is nonnull");
} else {
System.out.println("List is null");
}
if(name != null) {
System.out.println("name is nonnull");
} else …Run Code Online (Sandbox Code Playgroud) 我理解扩展内部类的顶级类的概念:
package pkg1;
public class A {
public class B {
}
}
package pkg2;
import pk1.A;
public class C extends A.B {
public C() {
new A().super();
}
}
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚任何说明这一点的真实例子.也就是说,我们为什么要使用这样的实现呢?
我有一个字节变量:
byte varB = (byte) -1; // binary view: 1111 1111
Run Code Online (Sandbox Code Playgroud)
我想看到两个最左边的位并执行6位无符号右移:
varB = (byte) (varB >>> 6);
Run Code Online (Sandbox Code Playgroud)
但是我得到的-1好像是int类型,只有当我换30时才得到3!
我该如何解决这个问题,只能通过6位移位获得结果?
如何在流畅验证中按实体类型注入或查找验证器?我有以下课程并希望通过流畅的验证来验证实体
public class BaseEntity {}
public class Article :BaseEntity
{
public string Name {get;set;}
}
public class ArticleValidator : AbstractValidator<Article>
{
public ArticleValidator()
{
RuleFor(x => x.Name ).NotEmpty().Length(0,512);
}
}
Run Code Online (Sandbox Code Playgroud)
并有 BaseEntity 的扩展:
public static ValidationResult Validate(this BaseEntity entity)
{
//????and here how i can find entity validator by type of entity and validate it and return result.
}
public class ArticleService
{
public void AddArticle(Article aricle)
{
var result = article.Validate();
if(result.IsValid)
;.......
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个相对简单的问题,我试图解决.似乎没有直观的方法来做到这一点,或者我在这里遗漏了一些东西.
考虑使用此方法查找主图像,如果不存在,则返回第一张图像 -
public Image findMainImage(Collection<? extends Image> images) {
if (images == null || images.isEmpty()) return null
return images.stream()
.filter(Image::isMain)
.findFirst()
.orElse(images.iterator().next())
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误 - orElse(capture<? extends Image>) in Optional cannot be applied
任何方向都会很棒.
尝试为通用链表创建迭代器.当我尝试创建一个"当前"节点以便根据头部标记迭代列表时,我得到一个不兼容的类型错误.这是重要的线条
public class LinkedList<T> implements Iterable<T>
{
private node<T> headsent;
private node<T> tailsent;
public DistanceEventList()
{
headsent = new node<T>();
tailsent = new node<T>();
headsent.setnext(tailsent);
tailsent.setprevious(headsent);
}
public node<T> getheadsent()
{
return headsent;
}
...
public MyIterator<T> iterator() {
return new MyIterator<T>();
}
public class MyIterator<T> implements Iterator<T>
{
private node<T> current = getheadsent();
public T next() {
current = current.getnext();
return current.getdata();
}
private class node<T> {
private T data;
private node<T> next;
private node<T> previous;
...
public node<T> …Run Code Online (Sandbox Code Playgroud) 我的类GraphicButton.java创建了一个JButton带有特定文本和字体以及矩形边框的自定义.我的问题是在字符串的最后一个字符和我想要删除的边框的末尾之间有一些额外的空间.
这是一个GraphicButton类似于字符串"PLAY"和字体FFF Forward (直接下载链接)添加到a 的实例JFrame.红线是我想要移除的空间.

这是我正在使用的代码(JFrame省略了创建和设置):
GraphicButton.java:
public class GraphicButton extends JButton {
private static final long serialVersionUID = 1L;
//Fields
private String text;
private Font font;
//Constructor
public GraphicButton(String text, Font font) {
super(text);
this.text = text;
this.font = font;
//Setting preferred size here.
this.setPreferredSize(new Dimension(this.getFontMetrics(font).stringWidth(text), this.getFontMetrics(font).getAscent()));
}
@Override
public void paintComponent(Graphics g) {
g.setFont(this.font);
//Draw text
g.drawString(this.text, 0, this.getHeight());
//Draw border
g.drawRect(0, …Run Code Online (Sandbox Code Playgroud)