在这篇文章中,我们将为您详细介绍关于方法的简单PHP类问题的内容,并且讨论关于php方法的相关问题。此外,我们还会涉及一些关于DW做的简单PHP管理、java–自定义Swing组件:关于方法的问题、J
在这篇文章中,我们将为您详细介绍关于方法的简单PHP类问题的内容,并且讨论关于php 方法的相关问题。此外,我们还会涉及一些关于DW做的简单PHP管理、java – 自定义Swing组件:关于方法的问题、JAVA 关于方法的返回值的调用、Java泛型-关于对象的大于方法的快速问题的知识,以帮助您更全面地了解这个主题。
本文目录一览:关于方法的简单PHP类问题(php 方法)
多次我见过其他类框架等使用方法调用.
$post->data->text();
我喜欢这个功能,而不仅仅是做这样的事情.
$post->dataReturnAsText();
但我不太确定他们是如何创建这个功能的,或许有一个“子方法”?希望有人能指出我正确的方向……
解决方法
<?PHP class Post{ public $data; } class Data{ public function text(){ } } $post = new Post; $post->data = new Data; $post->data->text();
但是,您可能已经在方法链接的上下文中找到它(在JavaScript库中非常流行):
<?PHP class Foo{ public function doThis(){ return $this; } public function doThat(){ return $this; } } $foo = new Foo; $foo->doThis()->doThat()->doThis();
DW做的简单PHP管理
在这个页面,有二个行为按钮,一个是“修改”,一个是“删除”。
点“修改”,没有问题;如下图所示:
点“删除”后,跳转后的页面无数据记录,其实这时在浏览页面里已经看不到了。
按正常是跳转到正式的删除页面,然后点击对应记录条下面的删除按钮,才完成删除,这样才对啊?
问题是出在哪儿了呢?
回复讨论(解决方案)
删除的查询语句是怎样的
if ((isset($_GET[''id''])) && ($_GET[''id''] != "")) {
$deleteSQL = sprintf("DELETE FROM price WHERE id=%s",
GetSQLValueString($_GET[''id''], "text"));
mysql_select_db($database_myconn, $myconn);
$Result1 = mysql_query($deleteSQL, $myconn) or die(mysql_error());
}
$colname_Recordset1 = "1";
if (isset($_GET[''id''])) {
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $_GET[''id''] : addslashes($_GET[''id'']);
}
mysql_select_db($database_myconn, $myconn);
$query_Recordset1 = sprintf("SELECT * FROM price WHERE id = %s", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $myconn) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
if (isset($_GTE[''id''])){
$query_Recordset1 = sprintf("SELECT * FROM price WHERE id = %s", $colname_Recordset1);
}else{
$query_Recordset1 = "SELECT * FROM price WHERE 1=1";
}
if (isset($_GTE[''id''])){
$query_Recordset1 = sprintf("SELECT * FROM price WHERE id = %s", $colname_Recordset1);
}else{
$query_Recordset1 = "SELECT * FROM price WHERE 1=1";
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
大神,小弟还是没有看懂。
估计你是直接执行了删除代码了
估计你是直接执行了删除代码了
qq吧 编辑页面:
删除
删除页面:
if($_POST) {
是表单提交,执行删除
}else {
通过 $_GET[''id''] 得到待删除记录,生成删除页面
}
java – 自定义Swing组件:关于方法的问题
我想建立一个代表甘特图的摇摆组件.它会很好(虽然对于人们能够与之交互并不是必不可少的(例如,滑动任务来调整时间)
感觉就像最好的方法是继承JComponent,并覆盖PaintComponent()来“绘制图表”应该是什么样子的图片,而不是像尝试将所有东西都塞进自定义JTable中那样.
我已经阅读了几本关于这个主题的书,并且还看了几个例子(最值得注意的是像JXGraph这样的东西) – 但我对一些事情感到好奇
>我什么时候必须切换到使用UI委托,什么时候可以坚持在paintcomponent()中摆弄以呈现我想要的东西?
>如果我想要其他swing组件作为我组件的子元素(例如我想在我的甘特图上有一个文本框)
>我可以不再使用paintComponent()吗?
>我可以在甘特图中任意定位它们,还是必须使用普通的摆动布局管理器
提前谢谢了.
-高手
解决方法
>与用户交互 – 鼠标,键盘等
>绘画
>根据需要创建“worker”子组件
在中长期,这是在Flamingo component suite中一次又一次地验证的方法,您可以将其用作额外的参考点(除了核心Swing组件的实现方式).
JAVA 关于方法的返回值的调用
为什么我在定义一个变量调用方法的返回值的时候,会一同把方法中的输出语句一起调用了。怎么样才能只调用返回值而不调用方法中的输出语句
Java泛型-关于对象的大于方法的快速问题
- 让我们用
value()
方法定义接口
并提供isGreaterThan
的默认实现
我们可以使此接口通用(以与绑定到HasValue
的类型一起使用)
public interface HasValue<T extends HasValue<T>> {
int value();
default boolean isGreaterThan(T that) {
return this.value() > that.value();
}
}
- 现在通用方法应该是上限
T extends HasValue
:
static <T extends HasValue> boolean isGreaterThanGeneric(T arg1,T arg2) {
return arg1.value() > arg2.value();
}
static <T extends HasValue> T getGreaterGeneric(T arg1,T arg2) {
return arg1.isGreaterThan(arg2) ? arg1 : arg2;
}
- 让我们提供
HasValue
接口的一些测试实现并对其进行测试。 注意:实现应绑定HasValue<MyClass>
,以限制将接口应用于相同类型(感谢@Kayaman)
class Apple implements HasValue<Apple> {
final String type;
Apple(String t) {
this.type = t;
}
@Override
public int value() { return 10; }
@Override
public String toString() {
return "apple " + type;
}
}
class Orange implements HasValue<Orange> {
@Override
public int value() { return 20; }
@Override
public String toString() {
return "orange";
}
}
测试:
public static void main(String args[]) {
Apple apple = new Apple("Golden");
Apple apple1 = new Apple("Jonagold");
Orange orange = new Orange();
System.out.println("apple greater than orange = " + getGreater(apple,orange));
System.out.println("apple greater than another apple generic = " + getGreaterGeneric(apple,apple1));
// System.out.println("apple greater than orange generic = " + getGreaterGeneric(apple,orange)); // <-- won't compile:
// required: T,T
// found: Apple,Orange
// reason: inference variable T has incompatible bounds
}
输出:
apple greater than orange = orange
apple greater than another apple generic = apple Jonagold
,
他们显然是在要求您实现通用的maxByValue
方法。由于greater-than
包含连字符,因此还是无效的Java标识符,因此我将坚持使用maxByValue
。
几次提到拥有value
方法的要求,因此我们将其编码为接口:
interface Value {
int value();
}
现在,在此处具有通用参数的要点是确保maxByValue
的返回类型足够具体以便使用。我们将此类型称为T
。为了使参数具有可比性,T
必须是Value
的子类型。获取返回类型的唯一有意义的来源是参数类型。总结三点:
- 类型参数
T
的子类型Value
- 从参数推断出的类型
- 结果类型为
T
为您提供签名:
public static <T extends Value> T maxByValue(T a,T b)
基本上只有两种有意义的实现方式。让我们以偏左的为例(即,如果值相同,则返回left参数):
public static <T extends Value> T maxByValue(T a,T b) {
if (a.value() < b.value()) {
return b;
} else {
return /* left as an exercise */;
}
}
让我们尝试一个简单的整数示例:
class IntValue implements Value {
final int v;
public IntValue(int v) {
this.v = v;
}
public int value() {
return v;
}
@Override
public String toString() {
return "" + v;
}
}
IntValue a = new IntValue(42);
IntValue b = new IntValue(58);
IntValue c = max(a,b);
System.out.println(c); // prints "58"
到目前为止一切顺利。让我们看看类型推断的精确度:
static interface Vehicle extends Value {
String doGenericVehicleSound();
}
static abstract class Car implements Vehicle {
public abstract String doCarSpecificSound();
public String doGenericVehicleSound() {
return doCarSpecificSound();
}
}
static class Train implements Vehicle {
public String doGenericVehicleSound() {
return "tk-tk-------tk-tk--tk-tk--------------tk-tk";
}
public int value() {
return 10000000;
}
}
static class Ferrari extends Car {
public String doCarSpecificSound() {
return "rr-rrr-rrrr-rrrrrrr-rrrrrrrrrrrrrrrrrrrr-RRRRRRRRRR";
}
public int value() {
return 222000;
}
}
static class Tesla extends Car {
public String doCarSpecificSound() {
return "... ... ¯\\_(ツ)_/¯";
}
public int value() {
return 50000;
}
}
public static void main(String []args){
System.out.println(maxByValue(new Ferrari(),new Tesla()).doCarSpecificSound());
System.out.println(maxByValue(new Tesla(),new Train()).doGenericVehicleSound());
// System.out.println(maxByValue(new Tesla(),new Train()).doCarSpecificSound());
}
在这里看到的要点如下。我们具有以下子类型关系:
Train extends Vehicle
Car extends Vehicle
Ferrari extends Car
Tesla extends Car
以及以下具体实例的最小上限:
LUB(Train,Train) = Train
LUB(Train,Ferrari) = Vehicle
LUB(Train,Tesla) = Vehicle
LUB(Ferrari,Ferrari) = Ferrari
LUB(Ferrari,Tesla) = Car
LUB(Tesla,Tesla) = Tesla
(以及所有对称情况)。
现在,当我们
- 将两辆车投入
maxByValue
,我们得到一辆车(第一个示例),但是 - 当我们将汽车和火车放进
maxByValue
时,我们得到了更一般的Vehicle
, 因此无法使用特定于汽车的方法(示例2和3;第三个方法无法编译-正确的是,因为火车没有任何汽车方法)。
前面的示例有点复杂,但是您要做的就是绑定您的通用值,这样它就不会接受无法编译的内容。
使用您的代码...
public static <T> int greaterThan(Value obj1,Value obj2){ }
...这里的泛型没用,因为您只使用过Value
个对象。 可能之所以起作用,是因为如果您有一个FooValue extends Value
对象,因为FooValue
是-Value
,则在这里将其视为有效参数。
(注意:这是Java泛型的完成方式:继承。)
您可能正在寻找的是这个
public static <T extends Value> int greaterThan(T obj1,T obj2) { }
这是一个绑定,这样泛型类型T
被绑定到Value
及其子类的所有值。
今天关于关于方法的简单PHP类问题和php 方法的分享就到这里,希望大家有所收获,若想了解更多关于DW做的简单PHP管理、java – 自定义Swing组件:关于方法的问题、JAVA 关于方法的返回值的调用、Java泛型-关于对象的大于方法的快速问题等相关知识,可以在本站进行查询。
本文标签: