小编Joh*_*ohn的帖子

方法数组:适配器模式?

问题描述: 我希望能够将方法列表传递给其他类,其中只在一个类中定义了方法.如果方法(其中一些具有输入参数和非void返回类型)在一个类中定义,我希望能够将其中一些的列表(可能有重复项)作为参数传递给其他类的构造函数.

代码描述: 下面的代码是一个粗略的例子,如果它有损于主要目标,可以忽略.另一个例子,除了下面的例子之外,将是一个方法,其中方法是int Add(int n1,int n2),int Subtract(int n1,int n2),Multiply等.并且接口有一个方法叫做int MathOperation(int n1,int n2).

尝试解决问题: 适配器模式似乎具有我正在寻找的功能,但我只看到了接口中的方法没有输入或输出参数的示例.我为此问题编写的示例实现在下面发布.

问题类比: 您有一个随机图片生成器Web服务.有30种突变可以应用于图像.客户端连接并单击"生成"按钮,其中一些函数的随机列表将传递给Web服务中的某个其他类,然后继续使用它自己的数据运行这些函数,同时还收集并可能重新使用返回生成一些变异的猫图像的值.它不能只显式调用其他类中的方法,因为该进程需要在运行时随机完成.这就是为什么我倾向于生成随机的方法列表的想法,这些方法在单击"生成"按钮时按顺序执行.

我希望我已经清楚了.

public class SomeClass {
    ...
    public double UseWrench(double torque, boolean clockwise) { ... }
    public double UsePliers(double torque, boolean clockwise) { ... }
    public double UseScrewDriver(double torque, boolean clockwise) { ... }
    public boolean UseWireCutters(double torque) { ... }

    interface IToolActions {
        double TurnFastener(double torque, boolean clockwise);
        boolean CutWire(double torque);
    }

    private IToolActions[] toolActions = new IToolActions[] {
        new IToolActions() { public …
Run Code Online (Sandbox Code Playgroud)

java design-patterns adapter

13
推荐指数
2
解决办法
1168
查看次数

Oracle Database 12c:如何从包含搜索中获取结果索引

我有一个Java服务,可以在Oracle 12c数据库上执行搜索.问题是我有一个CONTAINS()搜索:

String query = "select * from sys.my_table WHERE CONTAINS(my_clob_field, '" + searchString + "', 1) > 0";
Run Code Online (Sandbox Code Playgroud)

但我也想得到结果中搜索词或短语的索引.

目前我尝试过的是获取每个返回的搜索结果并通过它们在Java中执行REGEX搜索,以找到在前端突出显示搜索结果所需的开始和停止索引.

这适用于常规文本,但如果要求用户可以搜索任何字符的任意随机排列(即#<@(F#> <)$*> /\ ./#&!)#} {}] [ s fdf)Java搜索还需要找到确切的字符串并返回开始和停止索引.

我为Oracle搜索排除了任何特殊字符,但是Java搜索需要一组完全不同的规则才能找到索引.试图让它们匹配已经证明是一场噩梦,通常Java REGEX搜索找不到Oracle数据库搜索找到的相同事件.我相信我采取的方法是完全错误的,并且应该有一些简单的方法来获取hte搜索词(或短语)出现的索引.

TL; DR:当执行一个CONTAINS()搜索,我怎么可能发现仅使用Oracle数据库查询返回的搜索结果中的搜索词或短语的指标(所以我不担心失去搜索结果正则表达式匹配)?

java regex database oracle

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

Python:仅在包存在时定义函数

如果包存在,是否可以告诉Python 2.7仅解析函数定义?

我有一个在多台机器上运行的脚本.脚本中定义了一些非常好的函数,但脚本执行的核心操作不需要这些函数.运行脚本的某些机器没有该函数导入的软件包(并且无法在其上安装软件包).目前,我必须在将repo克隆到这些机器上之前注释掉函数定义.另一种解决方案是维持两个不同的分支,但这更加乏味.有没有一种解决方案可以防止我们在推送之前不断注释掉代码?

调用函数时已有解决方案,例如:

try:
    someFunction()
except NameError:
    print("someFunction() not found.")
Run Code Online (Sandbox Code Playgroud)

python

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

使用Java-8中的函数ArrayList

问题描述: 我希望能够使用从另一个类传入的函数的ArrayList(其中函数已在其他类中定义).如果在一个类中定义了可能具有不同输入和返回类型的函数列表,我希望能够将其中一些的ArrayList(可能有重复项)作为参数传递给其他类的构造函数或方法,使用它们执行操作.

代码说明: 下面的代码是一个非常简化的示例,从设计的角度来看并不是很有意义.问题的焦点是该方法getResult()SomeClass,一般如何,一旦你有他们使用功能的ArrayList.

尝试解决问题: getResult()方法实现是使用函数列表的许多尝试之一的示例.再次,请不要介意代码的设计.它就是这样做的,试图让问题的例子尽可能短.

简单的测试类

package com.Testing;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.function.Function;

public class Tester {

    public static void main(String[] args)
    {
        // Some functions
        Function<Integer, Integer> increment = (Integer input) -> {
            return input + 1;
        };

        Function<Integer, Integer> decrement = (Integer input) -> {
            return input - 1;
        };

        Function<Double, Double> timesPi = (Double input) -> {
            return input * 3.14;
        };

        // list of Functions
        List<Function> availableMathOperations = …
Run Code Online (Sandbox Code Playgroud)

java function arraylist java-8

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

Spring JSP:带有 modelAttribute="" 和 path="" 的 spring 表单出现问题

当只有一个字符串要传递给控制器​​时,使用 modelAttribute="" 标签和 path="" 标签对我来说没有意义。然而,当一个表单有多个文本框时,为它们建立一个对象模型实际上是有意义的。这样,modelAttribute 标签代表对象,即“Employee”,而path 标签代表字段,即“firstName”、“lastName”、“salary”。

当你只想传递一个字符串时你会怎么做?我不应该创建一个带有 getKey() 和 setKey() 的“key”字段的“Key”类,或者仅仅为了将字符串传递给控制器​​方法而进行的任何疯狂操作,对吗?在这种情况下,约定是什么?

如果我只是model.addAttribute("key", "")在页面加载时执行此操作,我会得到:

org.springframework.beans.NotReadablePropertyException: Invalid property 'key' 
of bean class [java.lang.String]: Bean property 'key' is not readable or has an invalid 
getter method: Does the return type of the getter match the parameter type of the setter?
Run Code Online (Sandbox Code Playgroud)

如果我删除 modelAttribute="key" 标签,我会得到:

java.lang.IllegalStateException: Neither BindingResult nor plain target object for 
bean name 'command' available as request attribute
Run Code Online (Sandbox Code Playgroud)

联合应用程序

<form:form method="post" action="myAction" modelAttribute="key">
   <td>
       <form:input path="key" value="${myValue}"/>
       <input type="submit" value="Submit"/> …
Run Code Online (Sandbox Code Playgroud)

java spring jsp spring-mvc

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

在 WPF ComboBox 中设置所选项目

(我读过类似的帖子,但它们都有一个不同之处,使得解决方案有所不同)

我正在移植一个使用此的 WinForms 应用程序:

myComboBox.SetSelected(myComboBox.FindString("Some Text"), true);
Run Code Online (Sandbox Code Playgroud)

以编程方式选择一个项目。当移植到 WPF 时,我尝试了这个,但没有效果(该项目没有被选择):

myComboBox.SelectedItem = myComboBox.FindName("Some Text");
Run Code Online (Sandbox Code Playgroud)

在 WPF 中选择组合框中现有项目的正确方法是什么?

c# wpf

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

VHDL 整数到字符串

想象一下,您想在 VHDL 中将整数转换为字符串以在 VGA 监视器上显示。您不能使用 ieee 2008 标准,因为您必须使用 xilinx ISE 14.7。我有以下代码用于将整数类型转换为字符串类型,但在 while 循环和 for 循环中出现“超出非静态循环限制”错误:

-- convert integer to string using specified base
-- (adapted from Steve Vogwell's posting in comp.lang.vhdl)

function str(int: integer; base: integer) return string is

variable temp:      string(1 to 10);
variable num:       integer;
variable abs_int:   integer;
variable len:       integer := 1;
variable power:     integer := 1;

begin

-- bug fix for negative numbers
abs_int := abs(int);

num     := abs_int;

while num >= base loop                     -- Determine …
Run Code Online (Sandbox Code Playgroud)

vhdl

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

标签 统计

java ×4

adapter ×1

arraylist ×1

c# ×1

database ×1

design-patterns ×1

function ×1

java-8 ×1

jsp ×1

oracle ×1

python ×1

regex ×1

spring ×1

spring-mvc ×1

vhdl ×1

wpf ×1