问题描述: 我希望能够将方法列表传递给其他类,其中只在一个类中定义了方法.如果方法(其中一些具有输入参数和非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服务,可以在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数据库查询返回的搜索结果中的搜索词或短语的指标(所以我不担心失去搜索结果正则表达式匹配)?
如果包存在,是否可以告诉Python 2.7仅解析函数定义?
我有一个在多台机器上运行的脚本.脚本中定义了一些非常好的函数,但脚本执行的核心操作不需要这些函数.运行脚本的某些机器没有该函数导入的软件包(并且无法在其上安装软件包).目前,我必须在将repo克隆到这些机器上之前注释掉函数定义.另一种解决方案是维持两个不同的分支,但这更加乏味.有没有一种解决方案可以防止我们在推送之前不断注释掉代码?
调用函数时已有解决方案,例如:
try:
someFunction()
except NameError:
print("someFunction() not found.")
Run Code Online (Sandbox Code Playgroud) 问题描述: 我希望能够使用从另一个类传入的函数的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) 当只有一个字符串要传递给控制器时,使用 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) (我读过类似的帖子,但它们都有一个不同之处,使得解决方案有所不同)
我正在移植一个使用此的 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 中选择组合框中现有项目的正确方法是什么?
想象一下,您想在 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)