小编Dan*_*ner的帖子

Enum遵循静态初始化程序的65535字节限制...最好的做法是什么?

我已经开始了一个相当大的所谓的Descriptors枚举,我想在我的模型中用作参考列表.但是现在我第一次遇到编译器/ VM限制因此我正在寻找最好的解决方案来处理这个问题.

这是我的错误:静态初始化程序的代码超过65535字节限制

很明显这是从哪里来的 - 我的Enum只有很多元素.但是我需要那些元素 - 没有办法减少那个元素.

最初,我计划使用单个枚举,因为我想确保Enum中的所有元素都是唯一的.它用于Hibernate持久化上下文,其中对Enum的引用在数据库中存储为String值.所以这必须是独一无二的!

我的Enum的内容可以分成几组属于一起的元素.但拆分Enum会消除我在编译期间获得的独特安全性.或者可以通过某种方式实现多个枚举?

我目前唯一的想法是定义一些名为Descriptor的接口,并编写几个实现它的Enum.这样我希望能够使用Hibernate Enum映射,就好像它是一个Enum一样.但我甚至不确定这是否有效.我放松了独特的安全.

任何想法如何处理这种情况?

java compiler-construction enums limit

19
推荐指数
3
解决办法
7790
查看次数

如何绘制好的RGB色彩图?

我正在尝试绘制一个完整的RGB颜色贴图,最终将允许用户通过在任何位置点击该可视贴图来选择颜色.我目前的代码如下:

- (void)drawRect:(CGRect)rect
{
    CGContextRef c = UIGraphicsGetCurrentContext();

    for (float x=0; x<320; x++) {
        for (float y=0; y<416; y++) {

            float r = x / 320;
            float g = y / 416;
            float b = (y < 208) ? y / 208 : (416 - y) / 208;

            CGContextSetRGBFillColor(c, r, g, b, 1.0);
            CGContextFillRect(c, CGRectMake(x, y, 1, 1));

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果还不错,但我还不满意.光谱错过了包括白色在内的鲜艳色彩.原因很清楚:红色,绿色和蓝色不会同时达到1.0.

生成的颜色映射的屏幕截图

您是否有任何建议如何改进该地图,以便它代表RGB色彩空间的全部光谱?

感谢您的输入!

更新:

正如Josh Caswell所建议的,我使用了HSB颜色空间和以下代码:

- (void)drawRect:(CGRect)rect
{
    CGContextRef c = UIGraphicsGetCurrentContext();

    int size = 20; …
Run Code Online (Sandbox Code Playgroud)

iphone core-graphics objective-c ios

12
推荐指数
1
解决办法
1537
查看次数

可以确定Java Comparator的进度吗?

我正在使用Comparator实现来对大量对象进行排序.根据此集合中对象的类型,排序需要几毫秒到半分钟.有没有办法确定Comparatorwhile排序的进度?我想为用户想象一下这个.

Collections.sort(sorted, new Comparator<Object[]>() {
    public int compare(Object[] o1, Object[] o2) {
        /* do it... */
        return order;
    }
}
Run Code Online (Sandbox Code Playgroud)

该集合可以包含简单的短String对象,Date对象或(最坏情况下)CLOB对象,这些对象需要在排序时获取数据.

java sorting progress comparator

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

@PostPersist没有叫... @PrePersist是......为什么?

我有一个JPA @Entity类,现在使用@PrePersist很长一段时间了.今天我想添加一些功能,我需要该实体的ID.此ID在数据库中由HIBERNATE_SEQUENCE持久化期间生成.它通常 em.persist(实体)之后设置.

由于某种未知的原因,@PrePersist方法被触发...而@PostPersist根本不会触发:

@Entity
public class MyEntity {

    @PrePersist
    protected void onCreate() {
        System.out.println("ExtendedEntity.onCreate()");
    }

    @PostPersist
    protected void afterCreate() {
        System.out.println("ExtendedEntity.afterCreate()");
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用带有Java v7 +,Hibernate v3.3.1.GA和Seam v2.2.2.Final的JBoss v4.2环境......

@PostPersist是否有隐藏的要求?

java hibernate jpa

6
推荐指数
1
解决办法
8462
查看次数

如何缩放不同大小的 iOS 应用程序图标

应用程序图标的每次更改都需要为 Xcode 生成合适的图标大小。我一直在寻找一种有效的方法来生成这些图标。

很明显,自动化过程不会关心像素拟合或类似细节。但是对于我们大多数人来说,一个简单的 AppleScript 应该可以解决问题。

以下屏幕显示了所需的所有尺寸:

在此处输入图片说明

我收集了不同的资源并制作了一个简单的工作脚本供大家分享......所以你去 - 只需在下面查看我的答案

icons app-store ios

6
推荐指数
1
解决办法
1935
查看次数

如何使用可以删除或单独添加的多个Web模块部署单个Web应用程序

我们目前在一个EAR中部署了两个单独的Web应用程序(WAR),其中包含其他JAR和设置.为了提高我们的部署我想这些Web应用程序的一个分裂成不同的模块可以构建和包装个别.但我目前还不知道如何打包这些模块,以便我能够根据需要添加或删除它们 - 最好在运行时.

webapp变得越来越复杂,我想将一些功能分成模块.这些模块应打包为单个存档.只要它们只包含通过代码加载的类和资源,我就知道如何做到这一点(简单的JAR).但是JSP怎么样?通常,WAR文件包含JSP或HTML文件.我的情况是使用JBoss SeamRichFaces的JSF页面.

这些模块将向运行的Web应用程序添加,资源JSF页面以及其他包含.是否有可能将它们作为单独的存档部署以提供相同的运行webapp?

我们正在使用Maven进行构建和打包,并部署到JBoss v4中.

java deployment jboss seam web-applications

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

如何在iText XMLWorker中摆脱Helvetica?

我们使用iText从Java代码生成PDF文件,在大多数情况下都可以很好地工作.几天前,我们开始生成PDF/A而不是普通的PDF文件,需要嵌入所有字体.iText Document主要是自定义PdfPTable和其他类的构建,我们直接控制字体.所有使用的字体都是通过以下代码加载的TTF文件创建的 - 这很好用:

    private BaseFont load(String path) {
        try {
            URL fontResource = PrintSettings.class.getResource(path);
            if (fontResource == null) {
                return null;
            }
            String fontPath = fontResource.toExternalForm();
            BaseFont baseFont = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
            baseFont.setSubset(true);
            return baseFont;
        }
        catch (DocumentException ex) {
            Logger.getLogger(PrintSettings.class).warn("...");
        }
        catch (IOException ex) {
            Logger.getLogger(PrintSettings.class).warn("...");
        }
        return FontFactory.getFont(PrintSettings.FONT, "UTF-8", true, 8f, Font.NORMAL, PrintSettings.COLOR_TEXT).getBaseFont();
    }
Run Code Online (Sandbox Code Playgroud)

现在我们在PDF中使用一种从HTML代码生成的特定内容类型.我们用它XMLWorker来处理那部分.只要我们没有嵌入字体,这工作得很好.但是使用PDF/A我们需要嵌入所有字体,现在我们正在努力解决未知的Helvetica使用来源.

我们试图通过使用我们自己的FontProvider类来解决这个问题:

public class PrintFontProvider extends FontFactoryImp {

    @Override
    public Font getFont(String …
Run Code Online (Sandbox Code Playgroud)

java embed pdf fonts itext

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

如何从字符串动态转换为枚举?

我正在尝试构建一个使用反射来访问对象属性的动态包装器。我的方法适用于不同类型的对象——但我仍然对 Enums 有问题。

让我们假设我已经有了合适的 setter 和 getter,我想在不同的情况下调用它们。例如,我试图通过以下代码保存给定值:

public void save() {
    try {
        // Enums come in as Strings... we need to convert them!
        if (this.value instanceof String && this.getter.getReturnType().isEnum()) {

            // FIXME: HOW?

        }
        this.setter.invoke(this.entity, this.value);
    }
    catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
        throw new RuntimeException("Die Eigenschaft " + this.property + " von Entity " + this.entity.getClass().getSimpleName() + " konnte nicht geschrieben werden!", ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将 String 对象转换为正确的 Enum 值?

我知道MyEnum.valueOf(String)......但是如果我不能在我的源代码中命名 Enum 怎么办?我还没有设法使用类似的东西

this.value …
Run Code Online (Sandbox Code Playgroud)

java enums

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

Safari 似乎没有在 beforeunload 事件上更新 DOM ......有修复吗?

我正在使用以下代码在浏览我们的 Web 应用程序时显示“加载”覆盖。这在 Chrome、Firefox 和 IE / Edge 中工作得很好……但在 Safari 中则不然。事件被触发,控制台日志显示事件——但通过 jQuery show() 的视觉变化没有效果。

$(document).ready(function() {
    $(window).on("beforeunload", function() {
        console.log("in beforeunload...");
        $("#overlay").show();
    });
});
Run Code Online (Sandbox Code Playgroud)

这是 Safari (macOS) 中的已知限制还是我遗漏了什么?有什么解决方法吗?

javascript safari jquery

5
推荐指数
0
解决办法
167
查看次数

是否可以在JBoss定时服务中使用Seam?

我已经开始编写一些新的JBoss定时服务,旨在使用一些现有的接缝组件.但由于不存在的上下文,我似乎无法访问这些组件.除了JSF的典型情况之外,是否可以使用它们?

一个小小的片段来展示我想要做的事情......

@Service
public class MyService extends DefaultTimedService implements TimedObject, DefaultServiceInterface {
    @Timeout
    public void ejbTimeout(Timer timer) {
        MyInterface loader = (MyInterface) Component.getInstance(MyInterface.SEAM_NAME, true);
        // throws no context!
    }
}
Run Code Online (Sandbox Code Playgroud)

例如,抛出以下异常:

java.lang.IllegalStateException: No application context active
    at org.jboss.seam.Component.forName(Component.java:1945)
    at org.jboss.seam.Component.getInstance(Component.java:2005)
Run Code Online (Sandbox Code Playgroud)

java service jboss seam

4
推荐指数
1
解决办法
2510
查看次数

org.hibernate.envers.event.AuditEventListener.generateBidirectionalCollectionChangeWorkUnits(...)中的NullPointerException

我正在使用Envers审核我的实体的不同字段.该框架通常起作用,但似乎在某些类型的实体映射中存在问题.所有以前的问题我都可以自己解决......但这次我被困住了.

将某个实体插入数据库时​​,我得到以下异常:

Caused by: java.lang.NullPointerException
    at org.hibernate.envers.event.AuditEventListener.generateBidirectionalCollectionChangeWorkUnits(AuditEventListener.java:108)
Run Code Online (Sandbox Code Playgroud)

我不完全确定哪个实体导致这种情况,因为它在flush()期间被触发,并且复杂的应用程序在一个较大的事务中插入许多不同的实体.

我们正在使用一些在该异常之前触发的HibernateEventListener ...所以我认为该实体是原因.persistence.xml以这种方式配置:

        <property name="hibernate.ejb.event.post-insert" value="com.xyz.hibernate.events.listeners.MyListener,org.hibernate.envers.event.AuditEventListener" />
Run Code Online (Sandbox Code Playgroud)

如果这是真的,则实体如下(摘录):

@Entity
@Table(name = Property.TABLE_NAME, uniqueConstraints = @UniqueConstraint(columnNames = { "ENTITY_ID", "DESCRIPTOR_ID", "PROMOLEVEL_ID" }))
public class Property extends AbstractEntity {
private static final long serialVersionUID = 1L;

public static final String TABLE_NAME = "E_BUSINESS_PROPERTIES";
public static final String PROPERTY_ENTITY = "entity";
public static final String PROPERTY_DESCRIPTOR = "descriptor";
public static final String PROPERTY_PROMOLEVEL = "promolevel";

@Audited
@ManyToOne(optional = false)
private ProjectPropertyDescriptor descriptor;

@Audited
@ManyToOne
private ExtendedEntity …
Run Code Online (Sandbox Code Playgroud)

java hibernate hibernate-envers

0
推荐指数
1
解决办法
2548
查看次数