小编Lui*_*oza的帖子

同步文件对象

根据我的知识和研究,synchronizedJava中的关键字允许同步方法或代码块语句来处理多线程访问.如果我想在多线程环境中锁定文件以进行写入,我必须使用Java NIO包中的类来获得最佳结果.昨天,我提出了一个关于为文件I/O操作处理共享servlet的问题,并且BalusC注释很好地帮助解决了这个问题,但是这个答案中的代码让我感到困惑.我不是要求社区"烧掉那个帖子"或"让他们贬低他"(注意:我没有投票或任何事情,我没有反对的答案),如果代码片段可以,我要求解释被认为是一种很好的做法

private static File theFile = new File("theonetoopen.txt");

private void someImportantIOMethod(Object stuff){
    /*
        This is the line that confuses me. You can use any object as a lock, but
        is good to use a File object for this purpose?
    */
    synchronized(theFile) {
        //Your file output writing code here.
    }
}
Run Code Online (Sandbox Code Playgroud)

java synchronized

7
推荐指数
1
解决办法
7389
查看次数

流动态资源出错.将p:graphicImage与Primefaces一起使用

我正在尝试使用p:graphicImage标记在primefaces中动态显示图像,如下所示:

<p:graphicImage value="#{submissionBean.contestImage}">
    <f:param name="imageName"
        value="#{contestBean.createContest.submissions[0].fileName}" />
</p:graphicImage>`
Run Code Online (Sandbox Code Playgroud)

托管bean如下:

@ManagedProperty("#{param.imageName}")
private String imageName;

public String getImageName()
{
    return imageName;
}

public void setImageName(String imageName)
{
    this.imageName = imageName;
}

private StreamedContent contestImage;

public StreamedContent getContestImage()
{
    FacesContext context = FacesContext.getCurrentInstance();
    if (imageName == null)
        imageName = Constants.SUBMISSION_FILE_DIR + "/" + "sacxzx_asdsdaas_icon.png";
    if (context.getRenderResponse())
    {
        // So, we're rendering the view. Return a stub StreamedContent so
        // that it will generate right URL.
        return new DefaultStreamedContent();
    }
    else
    {

        return new …
Run Code Online (Sandbox Code Playgroud)

jsf primefaces

7
推荐指数
1
解决办法
9536
查看次数

这段代码块的输出对我来说没有意义

所有调用实例的运行时类型都是D,因此,F()的所有调用都应该是在D中声明的F()方法.

using System;
class A
{
   public virtual void F() { Console.WriteLine("A.F"); }
}
class B: A
{
   public override void F() { Console.WriteLine("B.F"); }
}
class C: B
{
   new public virtual void F() { Console.WriteLine("C.F"); }
}
class D: C
{
   public override void F() { Console.WriteLine("D.F"); }
}
class Test
{
   static void Main() {
      D d = new D();
      A a = d;
      B b = d;
      C c = d;
      a.F();
      b.F();
      c.F();
      d.F();
   } …
Run Code Online (Sandbox Code Playgroud)

c# virtual-functions

7
推荐指数
2
解决办法
200
查看次数

针对JAVA的TWAIN/WIA实施

我正在开发一个与扫描仪交互的应用程序(Java Applet).我知道我需要一个Twain库或WIA库才能在Windows中运行.但我不确定两者的区别是什么?我想使用这个库:

http://thorntonzone.com/manuals/Compression/Fax,%20IBM%20MMR/MMSC/mmsc/uk/co/mmscomputing/device/twain/index.html

JAR文件链接坏了所以我从这里得到它. http://rsbweb.nih.gov/ij/plugins/twain-scan.html

和DLL来自这里:http://sourceforge.net/projects/twain-dsm/? source = dlp

但是,它没有检测到来源.这是错误日志:

http://pastebin.com/cB9gL0ip

我在64位机器上.有人有成功吗?

TWAIN规范太长,无法遵循,我没有找到任何有关WIA实施的资源.

非常感谢任何帮助/指针/资源.

java 64-bit wia twain image-scanner

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

桌面应用程序中的MVC和Swing

在意识到我完全忽略了MVC模式后,我试图在具有Swing视图的应用程序中使用该概念.我现在已经阅读了关于MVC主题的大部分帖子,但仍然有点困惑,因为它对我来说太复杂了,我想我需要一些基本的澄清,所以我不会出错路径.

我也想知道在实际项目中使用MVC有多常见.许多在线教程似乎忽略了控制器并将其与模型混合在一起,而我对XSTL的业务逻辑功能感到困惑.为什么要从JSP视图中寻址数据源?

抛开这些想法,我的正确问题是:

如果你有一个Swing组件,那么该Swing类中的事件监听器是否应该通过在POJO控制器类中调用(可能是静态的?)方法来更新组件状态,而POJO控制器类又从模型中获取适当的业务逻辑,该模型由POJO组成类层次结构和相关的持久性?

java model-view-controller swing design-patterns

7
推荐指数
1
解决办法
6214
查看次数

什么是jftfdi jffi对我的查询字符串做什么?

我们在项目中使用JavaServer Faces 2.2(Mojarra 2.2.1).我注意到一些奇怪的事 在reporting.xhtml我使用f:metadataf:viewAction浏览器的页面上,在这种情况下,Safari显示以下查询字符串:

reporting.jsf?jftfdi=&jffi=reporting%3Ffaces-redirect%3Dtrue
Run Code Online (Sandbox Code Playgroud)

这是什么巫术?jftfdi和jiffi做的参数是什么?他们的目的是什么?

jsf jsf-2 jsf-2.2

7
推荐指数
1
解决办法
1353
查看次数

对象反序列化是在Java中实现Prototype模式的正确方法吗?

TL; DR

我可以使用Serializable接口ObjectOutputStreamObjectInputStream类来使用Java序列化/反序列化,并且可能在实现Prototype模式的有效实现的类中添加readObjectwriteObject使用它们Serializable吗?

注意

这个问题不是要讨论使用复制构造函数是否优于序列化/反序列化.


我知道Prototype Pattern概念(来自维基百科,强调我的):

原型模式是软件开发中的创新设计模式.当要创建的对象类型由原型实例确定时使用它,该实例被克隆以生成新对象.此模式用于:

  • 避免客户端应用程序中的对象创建者的子类,就像抽象工厂模式那样.

  • 避免以标准方式创建新对象的固有成本(例如,使用'new'关键字),当它对于给定的应用程序来说过于昂贵时.

从这个Q/A:Java核心库中的GoF设计模式的例子,BalusC解释说,Java中的原型模式Object#clone只有在类实现Cloneable接口(标记接口类似于Serializable序列化/反序列化对象)时才能实现.使用这种方法的问题在博客文章/相关Q/As中注明如下:

因此,另一种方法是使用复制构造函数来克隆您的对象(DIY方式),但这无法实现我上面强调的文本的原型模式:

避免以标准方式创建新对象的固有成本(例如,使用'new'关键字)

AFAIK创建对象而不调用其构造函数的唯一方法是通过反序列化,如此问题的接受答案的示例中所述:在序列化和反序列化期间如何调用构造函数?

所以,我只是询问是否使用对象反序列化ObjectOutputStream(并知道你正在做什么,将必要的字段标记为transient并理解该过程的所有含义)或类似的方法将是Prototype Pattern的正确实现.

注意:我不认为解组XML文档是这种模式的正确实现,因为它调用了类构造函数.也可能在解组JSON内容时也会发生这种情况.


人们会建议使用对象构造函数,在使用简单对象时我会介意这个选项.这个问题更倾向于深度复制复杂的对象,我可能有5个级别的对象要克隆.例如:

//fields is an abbreviation for primitive type and String type fields
//that can vary between 1 and 20 (or more) declared fields in the class
//and all of them will …
Run Code Online (Sandbox Code Playgroud)

java serialization design-patterns deserialization prototype-pattern

7
推荐指数
1
解决办法
1189
查看次数

Hibernate使得Weld没有在Java SE中初始化

所以,我有一个使用Weld 1.2进行依赖注入的基本Java SE程序.

一切正常,直到我将Hibernate放入混合中,并使用以下pom.xml依赖项:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
</dependency>
<dependency>
    <groupId>org.jboss.weld.se</groupId>
    <artifactId>weld-se</artifactId>
    <version>2.2.4.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.3.6.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

Hibernate是添加的依赖项,使其中断.这是我的入门课程:

public class EntryPoint {
    public static void main( String[] ARGV ) {
        Weld weld = new Weld();
        WeldContainer container = weld.initialize();

        Application application = container.instance().select(Application.class).get();

        application.testFetch();

        weld.shutdown();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在包含Hibernate依赖项后尝试运行它时,这是我的输出:

Sep 11, 2014 11:13:44 PM org.jboss.weld.bootstrap.WeldStartup <clinit>
INFO: WELD-000900: 2.2.4 (Final)
Sep 11, 2014 11:13:44 PM org.jboss.weld.bootstrap.WeldStartup startContainer
INFO: WELD-000101: Transactional services not available. Injection of @Inject UserTransaction not available. …
Run Code Online (Sandbox Code Playgroud)

java hibernate maven cdi weld

7
推荐指数
1
解决办法
5306
查看次数

缺少数据库连接eclipse

我在eclipse中缺少MySQL和其他连接配置文件,因此JBoss服务器会抛出错误.因声誉无法发布图片;)

我只有:

  • 通用JDBC
  • HSQLDB

使用Eclipse Kepler和jboss eap 6.1 - 我的PC上已经建立了MySQL服务器.

java mysql eclipse connection jboss

7
推荐指数
1
解决办法
3653
查看次数

在继续之前,如何让我的方法等待文件存在

有一个外部程序可以创建XML文件,但创建可能需要一段时间.我需要我的Java程序等到文件存在之后再继续.

我一直在阅读有关同步块的内容,我读到我可以这样做:

synchronized(this) {
    while (!file.exists) { this.wait(); }
}
Run Code Online (Sandbox Code Playgroud)

说实话,我对同步任务并不是很了解,所以我想知道我是否在正确的轨道上,或者我是否已经离开了.

java

7
推荐指数
1
解决办法
8421
查看次数