我是瑞士一所大学的注册学生,因此我知道编程是Electrotechnik(电气工程)的一部分,我将参加该领域.
如何以最简单的方式学习Java编程,没有其他人的帮助?
我通过学习书籍来尝试它,但我发现它并不容易,特别是单独完成它.
我有一个类创建Smo类型的对象.然后,该对象从另一个类调用静态方法.静态方法要求我将对象传递给调用它的对象.如何将调用对象指定为要传递的参数.
例如:
class Smo {
Smo() {
}
void sponge() {
car.dancing(??????); //////< ----------- how do I refer to self?
}
void dance() {
//// do a little dance
}
}
class Car() {
Car() {
}
dancing(Smo smo) {
smo.dance();
}
}
Run Code Online (Sandbox Code Playgroud) 我试图读取一个JSON文件,如:
{
"a": "abc",
"data" : {
"type" : 1,
...
}
}
Run Code Online (Sandbox Code Playgroud)
其中......部分可根据类型更换:
{
"a": "abc",
"data" : {
"type" : 1,
"b" : "bcd"
}
}
Run Code Online (Sandbox Code Playgroud)
要么:
{
"a": "abc",
"data" : {
"type" : 2,
"c" : "cde",
"d" : "def",
}
}
Run Code Online (Sandbox Code Playgroud)
对于我的生活,我无法弄清楚用于实现这一目的的正确的JAXB注释/类.如果需要,我没有在数据块之外移动类型变量的问题.
我正在使用Glassfish 3.1.2.2.
编辑:
基于Perception提供的代码,我做了一个快速的尝试......虽然在glassfish中不起作用:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = As.PROPERTY, property = "type")
@JsonSubTypes(
{
@JsonSubTypes.Type(value = DataSubA.class, name = "1"),
@JsonSubTypes.Type(value = DataSubB.class, name = "2")
})
@XmlRootElement
public abstract class Data …Run Code Online (Sandbox Code Playgroud) 在我徘徊并自己滚动之前,我想知道是否有人知道如何做以下事情......
目前我正在使用MessageFormat来创建一些字符串.我现在要求其中一些字符串具有可变数量的参数.
例如(当前代码):
MessageFormat.format("{0} OR {1}", array[0], array[1]);
Run Code Online (Sandbox Code Playgroud)
现在我需要这样的东西:
// s will have "1 OR 2 OR 3"
String s = format(new int[] { 1, 2, 3 });
Run Code Online (Sandbox Code Playgroud)
和:
// s will have "1 OR 2 OR 3 OR 4"
String s = format(new int[] { 1, 2, 3, 4 });
Run Code Online (Sandbox Code Playgroud)
有几种方法我可以考虑创建格式字符串,例如每个参数的数量为1个字符串(它们的数量有限,所以这很实用,但看起来很糟糕),或者动态构建字符串(有一个他们很多,所以这可能很慢).
还有其他建议吗?
我创建了一个方法并不断收到错误,我需要在方法结束时包含一个}.我把}放入,错误仍然存在!如果我然后删除}将在先前的方法上弹出相同的错误; 那个错误以前没有.换句话说,如果我在我最近的方法上键入},那么错误就会保留在那里,只有那里.如果我删除它,它会复制我之前的方法上的错误.
private void putThreeBeepers() {
for (int i = 0; i < 2; i++) {
putBeeper();
move();
}
putBeeper();
}
private void backUp() {
turnAround();
move();
turnAround();
}
Run Code Online (Sandbox Code Playgroud) 第二次尝试这个问题(初始代码不足以突出问题)
这是不编译的代码:
interface Player<R, G extends Game>
{
R takeTurn(G game);
}
interface Game<P extends Player>
{
void play(P player);
}
abstract class AbstractGame<R, P extends Player>
implements Game<P>
{
public final void play(final P player)
{
final R value;
value = player.takeTurn(this);
turnTaken(value);
}
protected abstract void turnTaken(R value);
}
public class XPlayer
implements Player<Integer, XGame>
{
@Override
public Integer takeTurn(final XGame game)
{
return (42);
}
}
public class XGame<P extends Player<Integer, XGame>>
extends AbstractGame<Integer, XPlayer> …Run Code Online (Sandbox Code Playgroud) 下面的代码是一次性的,一个失败的想法让Enumeration在新的foreach循环中工作,但是我想让它编译,因为我一直遇到泛型和外卡的问题.无论出于何种原因,我都看不出如何修复它.
那么,需要进行哪些更改才能进行编译?
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class Main
{
private ZipFile zipFile;
public Set<String> entries()
{
final Set<String> names;
final Enumeration<? extends ZipEntry> enumeration;
final IterableEnumeration<? extends ZipEntry> iteratable;
names = new HashSet<String>();
// zipFile.entries() returns "Enumeration<? extends ZipEntry>"
enumeration = zipFile.entries();
// this line won't compile
iteratable = new IterableEnumeration<? extends ZipEntry>(enumeration);
for(final ZipEntry entry : iteratable)
{
if(!(entry.isDirectory()))
{
names.add(entry.getName());
}
}
return (names);
}
}
class IterableEnumeration<T>
implements …Run Code Online (Sandbox Code Playgroud) 将Java中的形状渲染为"实际大小"的简便方法是什么?例如,我有一个直径为1"的管子,我想在屏幕上将其描绘成1"圆的轮廓.Graphics2D方法drawOval(int x,int y,int width,int height)采用高度和宽度(以像素为单位).将像素大小转换为屏幕渲染大小的步骤是什么?
提前致谢.
我是 Java 新手,开始组织我的第一个项目,该项目将是从 .Net 解决方案转换而来,并附加了几个项目(一个 GUI 项目和几个支持类项目)。
我正在使用 Eclipse 并且看到项目文件,但我想知道是否有办法将它们组织成“解决方案”?将所有项目连接在一起的东西。在 .Net 中,有一个解决方案文件,您可以使用它来打开和加载与应用程序关联的所有项目及其文件。
我看到包和源文件夹,但它们似乎是特定于项目的(一个项目)。我创建了一个工作集,但这似乎只是将项目放在 Eclipse 的视图中。
也许出于某种原因,Java 中不需要这样做,但我想确保我最初正确设置了这个应用程序
我希望增加jquery移动应用程序的标头大小.当我这样做时,我需要标题集中.我发现我可以添加如下行:
line-height: 30px;
Run Code Online (Sandbox Code Playgroud)
到了css,但这远远不是一个黑客.我认为必须有更好的方法来做到这一点.
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css" />
<script src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js"></script>
<style type="text/css"><!--
.ui-header {
height: 50px;
}
-->
</style>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>This Needs To Be Centred Vertically</h1>
</div>
<div data-role="content">
<p>Page content goes here.</p>
</div>
<div data-role="footer">
<h4>Page Footer</h4>
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)