小编amm*_*zon的帖子

拦截器和装饰器之间的区别

Java中的拦截器和装饰器之间是否存在任何差异?严格来说,我可以使用装饰器实现一些拦截器无法实现的东西,反之亦然吗?

除了我必须检查方法名称以在拦截器中添加特定于方法的行为的问题:

拦截器:

@Nice
@Interceptor
public class NiceGreeterInterceptor {
  @AroundInvoke
  public Object decorate(InvocationContext ic) throws Exception {
    Method method = ic.getMethod();
    String methodName = method.getName();
    Object result = ic.proceed();
    if (methodName.equals("greet")) {
      return "NEW " + result;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

装饰:

@Decorator
public class GreeterDecorator implements Greeter {
  @Inject
  @Any
  @Delegate
  private Greeter greeter;

  @Override
  public String greet() {
    return "NEW " + greeter.greet();
  }
}
Run Code Online (Sandbox Code Playgroud)

或者说我可以用拦截器重现装饰器的所有行为是合法的,但是使用装饰器会更舒服吗?

java design-patterns decorator java-ee interceptor

12
推荐指数
2
解决办法
5400
查看次数

在Xcode 7模板中创建空组

我尝试创建一个Xcode模板.我按照Xcode 4模板创建空组的问题,但它不再起作用了.

只有一个名为"Application"的文件(没有扩展名).

TemplateInfo.plist

<key>Nodes</key>
<array>
    <string>Application</string>
</array>

<key>Definitions</key>
<dict>
    <key>Application</key>
    <dict>
        <key>Path</key>
        <string>Application</string>
    </dict>
</dict>
Run Code Online (Sandbox Code Playgroud)

目前的结果:

项目结构

预期结果:

预期结果

我如何更改TemplateInfo.plist,以便Xcode生成一个名为Application的空文件夹而不是没有扩展名的文件?

xcode templates ios xcode-template

11
推荐指数
1
解决办法
949
查看次数

EclipseLink:缺少类型的指示符字段值

我的应用程序在Payara上运行并提供REST API但是当我尝试使用POST请求创建对象时,我得到以下异常:

Exception [EclipseLink-43] (Eclipse Persistence Services - 2.6.0.payara-p1): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Missing class for indicator field value [Miss] of type [class java.lang.String].
Descriptor: XMLDescriptor(at.htl.handballinheritance.entity.Throw --> [DatabaseTable(event), DatabaseTable(dataObject)])
  at org.eclipse.persistence.exceptions.DescriptorException.missingClassForIndicatorFieldValue(DescriptorException.java:940)
  at org.eclipse.persistence.internal.oxm.QNameInheritancePolicy.classFromRow(QNameInheritancePolicy.java:278)
  ...
Run Code Online (Sandbox Code Playgroud)

完整的Stacktrace

相反,当我在使用Hibernate的Wildfly上执行程序时,一切都很好并且没有错误发生.

实体:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@XmlRootElement
public abstract class Event extends DataObject implements Serializable {
    ... 
}

@Entity
public class Throw extends Event implements Serializable {

    @Enumerated(EnumType.STRING)
    @NotNull
    private ThrowingType type;

    ...
}

public enum ThrowingType {
    Goal, Miss
}
Run Code Online (Sandbox Code Playgroud)

REST API:

@POST
public Response …
Run Code Online (Sandbox Code Playgroud)

java rest jpa glassfish eclipselink

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

将屏幕外的 SwiftUI 视图居中

我正在尝试创建一个水平居中圆的屏幕,该大于实际屏幕的宽度。不幸的是,我不知道如何将它水平居中并将其固定在顶部。有没有一种简单的方法可以使用 SwiftUI 实现这样的结果?

struct DemoView: View {
    private let circleBackgroundPercentage: CGFloat = 1.3
    
    var body: some View {
        ZStack {
            GeometryReader { geometry in
                VStack(alignment: .center) {
                    Circle()
                        .fill(Color.yellow)
                        .frame(width: geometry.size.width * circleBackgroundPercentage, height: geometry.size.height * circleBackgroundPercentage, alignment: .center)
                }
            }
            Text("Demo")
        }.edgesIgnoringSafeArea(.all)
    }
}
Run Code Online (Sandbox Code Playgroud)

预期的结果] 目前的结果

ios swift swiftui

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

Minikube 中的默认 CNI

我试图了解 Kubernetes 网络,现在我想知道在安装 Minikube 时是否默认使用 CNI,什么时候使用哪个?

换句话说,我可以在没有 Flannel 或 Calico 等 CNI 提供程序的情况下运行 Minikube 吗?

kubernetes flannel minikube cni

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