小编Mat*_*all的帖子

instanceof与多态

我遇到了instanceof运营商的麻烦.我试图避免它.基本上,我有以下结构:

class Shape {}
class Triangle extends Shape {}
class Rectangle extends Shape {}

ShapeParser s;
while (s.hasNext())
     parseShape(s.next()); // returns a Shape object

void parseShape(Triangle t) { // do stuff } // KEY POINT HERE
void parseShape(Rectangle t) { // etc }
Run Code Online (Sandbox Code Playgroud)

我正在做的关键点是:我想要对函数执行参数重载,但是它不能正常工作(编译错误).我试图避免:

void parseShape(Shape s)
{
     if (s instanceof Triangle) ...
}
Run Code Online (Sandbox Code Playgroud)

更新:似乎共识是创建一个基类方法:parseShape()来完成提升.我想澄清一下我的问题:这个问题的动机是与观察者模式有关.假设我有以下Observer对象有效负载方法:

    public void update(Observable obj, Shape objectPayload){} 
// note: the objectPayload is usually of type Object
Run Code Online (Sandbox Code Playgroud)

而不是执行:

public void update(Observable obj, Shape objectPayload)
{ …
Run Code Online (Sandbox Code Playgroud)

java polymorphism

5
推荐指数
1
解决办法
2283
查看次数

javascript转换和爆炸字符串到数字

嘿家伙我可以用什么来将这个字符串转换为数字?"$ 148,326.00"

我猜我需要爆炸它并取下美元符号,然后使用parseFloat()?那会是最明智的方式吗?谢谢

这就是我得到的数字:

var homestead = xmlDoc.getElementsByTagName("sc2cash");
document.getElementById('num1').innerHTML = homestead[1].textContent;
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
2
解决办法
8430
查看次数

设置Java-基本(但还不是那么基本...)

最近,我开始使用Head First Java来学习Java,但我发现这本书缺乏有关设置Java的大量信息。它几乎告诉我下载JDK,并提到了有关类路径变量的内容。

我非常困惑,很明显,我的Java尚未设置为可以运行。所以...我进行了研究,并设法将/ bin /目录添加到CLASS_PATH中,并且还创建了一个名为JAVA_HOME的新系统变量,并将其指向bin文件夹。我不太确定该怎么做-这个话题对于其他每个程序员似乎都很容易,因为我找不到其他人在设置Java环境方面有如此困难。

因此,我现在可以编译并运行程序。我已经做了一些Hello World的事情,yada yada。现在,在第37页上,我们实际上将要做一些OOP的工作。这些是类:

class Movie {
    String title;
    String genre;
    int rating;

    void PlayIt() {
        System.Out.println("Playing the movie");
    }
}
Run Code Online (Sandbox Code Playgroud)

第二个:

public class MovieTestDrive  {
    public static void main(String[] args) {
        Movie one = new Movie();
        one.title = "Movie 1";
        one.genre = "Movie 1 Genre";
        one.rating = -2
        two.title = "Movie 2";
        two.genre = "Movie 2 Genre";
        two.rating = -1
        three.title = "Movie 3";
        three.genre = "Movie 3 Genre";
        three.rating = 3
    }
} …
Run Code Online (Sandbox Code Playgroud)

java classpath

5
推荐指数
1
解决办法
321
查看次数

WP7开发应用程序/页面宽变量

有谁知道如何设置一个可以在Windows Phone 7应用程序的所有页面上访问的变量?

global-variables windows-phone-7

5
推荐指数
1
解决办法
5184
查看次数

使用EclipseLink MOXy(JAXB)将子类编组到JSON时是否有可能隐藏"@type"条目?

我即将开发基于JAX-RS的RESTful Web服务,我使用MOXy(JAXB)来自动生成我的Web服务的JSON响应.

一切都很酷,但由于Web服务将成为基于JavaScript的Web应用程序的后端,因此可公开访问,我不希望暴露某些细节,如类名等.

但是,我已经意识到在某些条件下MOXy在编组的字符串中嵌入了一个"@type"条目,这个条目后面跟着刚被编组的对象的类名.

特别是,我已经意识到MOXy在编组扩展类的实例时会以这种方式运行.

假设以下超类"MyBasicResponse"

@XmlRootElement(name="res")

public class MyBasicResponse {

@XmlElement
private String msg;

public MyBasicResponse() {
    // Just for conformity
}

public String getMsg() {
    return msg;
}

public void setMsg(String msg) {
    this.msg = msg;
}
}
Run Code Online (Sandbox Code Playgroud)

而这个专门(扩展)类"MySpecialResponse"

@XmlRootElement(name="res")

public class MySpecialResponse extends MyBasicResponse {

@XmlElement
private String moreInfo;

public MySpecialResponse() {
    // Just for conformity
}

public String getMoreInfo() {
    return moreInfo;
}

public void setMoreInfo(String moreInfo) {
    this.moreInfo = moreInfo;
}
}
Run Code Online (Sandbox Code Playgroud)

所以,MyBasicResponse对象的编组字符串是

{"msg":"A Message."} …
Run Code Online (Sandbox Code Playgroud)

json jax-rs jaxb eclipselink moxy

5
推荐指数
1
解决办法
1267
查看次数

如何在Android中获取一系列字符串?

目前我在简单的Android应用程序工作,我已经尝试了在iphone中的字符串范围,它的作品,但我在Android应用程序中不知道这个?在iPhone中:

result = "mobile - check balance | rate: 0.036"

if ( [result rangeOfString:@"rate:"].location != NSNotFound) 
{

}
Run Code Online (Sandbox Code Playgroud)

如何在Android中转换这个,请帮帮我

android range

5
推荐指数
1
解决办法
1972
查看次数

Runtime和ProcessBuilder的替代品(Java)

如果有人知道如何在java应用程序中不使用运行时或ProcessBuilder来运行unix命令,我感兴趣

java runtime processbuilder

5
推荐指数
1
解决办法
3128
查看次数

在 mac 上安装 libtools

我想在 mac 上安装 libtools。我去了苹果开发者网站并下载了 .dgm,该文件为 Mountain Lion 下载了 Xcode 的 cmdline 工具。

但是当我去终端并输入 libtools 时,它说找不到 bash 命令。

有人可以告诉我如何在 mac 上安装 libtools。

macos

5
推荐指数
1
解决办法
2万
查看次数

maven - 传递依赖

我在pom.xml中定义数据时尝试遵循最佳实践,所以我开始研究Spring源代码,我看到:


<project xmlns="http://maven.apache.org/POM/4.0.0"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.springframework</groupId>
  <artifactId>spring-aop</artifactId>
  <packaging>jar</packaging>
  <version>3.1.1.RELEASE</version>
.....

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${project.version}</version>
      <scope>compile</scope>
</dependency>

---

<dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <scope>test</scope>
</dependency>
-----
Run Code Online (Sandbox Code Playgroud)

但是,spring-bean也依赖于log4j.

你能告诉我,对于最佳实践方法,你应该在多大程度上依赖传递依赖?

我问这个是因为我的第一个想法是不重新声明log4j依赖,因为spring-beans已经声明了它.

maven transitive-dependency

5
推荐指数
1
解决办法
7899
查看次数

匈牙利算法-从中选择0的最后一步,使得每一行和每一列仅选择一个

我正在尝试在Java中实现匈牙利算法。我有一个NxN成本矩阵。我正在逐步遵循指南,并已达到第9步-

“通过选择一组零来选择匹配项,以便每一行或每一列都只有一个被选择。”

我已经有了0的矩阵。我试图弄清楚这一点,对我有用的唯一方法是蛮力方法。

我还想到选择遇到的第一个0,删除该列和行并重复;但是这种方法不起作用。

有什么技巧或方法吗?不太复杂的东西吗?任何建议将不胜感激。

谢谢

java algorithm hungarian-algorithm

5
推荐指数
1
解决办法
1075
查看次数